
23 Nov
2005
23 Nov
'05
12:01 p.m.
Udo Stenzel
The unix pipe is actually function composition. Its argument (standard input) isn't explicitly mentioned
Then it seems Unix must overload the "|" operator. I typically use it to do things like grep "." *.hs | wc So I think of the types as being grep "." *.hs :: String wc :: String -> Int -- ok, not really, but it shows the point better. So we'd have to have (|) :: a -> (a -> b) -> b And (flip ($)) is the only thing that makes sense. Is it the case that a Unix pipe is analagous to (flip ($)) or (flip (.)) depending on the context? Chad Scherrer Computational Mathematics Group Pacific Northwest National Laboratory "Time flies like an arrow; fruit flies like a banana." -- Groucho Marx