3 ms·
How does the first form work out as an inline function argument? I'm not familiar with Haskell's syntax.
by natrius 17y ago
How does the first form work out as an inline function argument? I'm not familiar with Haskell's syntax.
- nathanic 17y agoI think I misunderstood you before. I thought you were talking about putting multiple statements on a line. But Haskell can pass around code blocks as well, with or without significant whitespace. For example, I can define a function called 'forever' to run a sequence of actions forever like so: forever x = x >> forever x Where 'x' is any sequence of actions. You can pronounce '>>' as "followed by". (These are monadic actions, actually, but nevermind that.) I can invoke it like so: myFunc = forever (do {this; that; other}) or: myFunc = forever $ do this that other The dollar sign is a function that lets you dispense with some parentheses. Think of it like an opening paren that closes at the end of the subexpression it's in. If the block is a function rather than a sequence of actions, Haskell uses '\' as a lambda for introducing anonymous functions. For example, the function 'map' takes a unary function and calls it with each value from a list. Below I'll call it with an anonymous function which returns double its argument: map (\x -> x * 2) [1,2,3] This results in a new list [2,4,6].
- shrughes 17y agoAnother good example: forM_ [1..9] $ \i -> do this i that other