6 ms·
For me, one of the biggest obstacles to understanding lots of Haskell code is opaque infix operators.
by samg_ 15y ago
For me, one of the biggest obstacles to understanding lots of Haskell code is opaque infix operators.
- Peaker 15y agoThere aren't that many of them in the Prelude and common libraries. Besides the standard arithmetic ones, only ones I can think of are the "fish" operators, composition dot, and a few arrows. Did you try to learn what they mean, or did you give up earlier than that?
- lubutu 15y agoTo be precise: cons (:), bind (>>=), 'constant bind' (>>), 'flipped bind' (=<<), compose (.), apply ($), strict apply ($!), append (++), and subscript (!!).
- joeyh 15y agoI had never seen $! before, of course it's obvious what it does if you know ! and $. There are patterns like this throughout the operators. There are also the applicatives <$> <*> <$ etc.
- adrusi 15y agoalso in Data.List (which is a fairly common import) there are a few, like (\\) which is list difference ([1, 2, 3, 4, 5, 6] \\ [1, 3, 6] == [2, 4, 5]), and I can't really think of any others. There aren't really that many, though some modules will abuse them. The standard ones make sense.
- price 15y agoFortunately it's easy to look them up: http://haskell.org/hoogle http://haskell.org/hoogle Enter any operator or other name, no matter how crazy the characters involved, and it'll find it if it's in the standard library. This contrasts with resorting to Google to look things up in most languages and despairing because it thinks your burst of punctuation (which is the whole point of the query) is noise.