2 ms·
Well, Haskell functions are curried, so you could think of the arity as always being 1. ;-) If you're writing code, you can always use redundant parentheses at
by nandemo 15y ago
Well, Haskell functions are curried, so you could think of the arity as always being 1. ;-)
If you're writing code, you can always use redundant parentheses at first. Then you refactor, gradually removing the parentheses or replacing them with an appropriate combination of ($) and (.).
Another useful thing to learn is how to write point-free code. An example:
strToUpper xs = map toUpper xs
strToUpper' = map toUpper
These are essentially the same function, but the latter is often preferred. Note also that they have the same type, namely String -> String.
If you're reading code and you find it hard to parse, you probably need to read easier code (for instance, from LYAH or RWH), but more likely you need to write more code of your own.
- mohamedsa 15y agoI know about currying, but there's still a certain meaning to arity even in this case. It might be argued that on the long run the current syntax is better for the veteran Haskeller, but it's still some barrier to entry. I wonder if a Haskell IDE could have a 'clarify calls' mode that shows where each function argument goes or comes from..
- gtani 15y agoBesides LY and RW, the Stanford lectures notes are an excellent resource: http://www.scs.stanford.edu/11au-cs240h/notes/ http://www.scs.stanford.edu/11au-cs240h/notes/ https://github.com/bos/stanford-cs240h https://github.com/bos/stanford-cs240h Somewhere in here are notes from Washington U of St. Louis studnets that were really helpful: http://www.haskell.org/haskellwiki/Tutorials http://www.haskell.org/haskellwiki/Tutorials http://haskell.org/haskellwiki/Category:Tutorials http://haskell.org/haskellwiki/Category:Tutorials http://haskell.org/haskellwiki/Learning_Haskell http://haskell.org/haskellwiki/Learning_Haskell