3 ms·
As a counterpoint, I love this about Haskell. It seems like my ability to hold logic in my head is partly visuo-spatial, and the terseness makes it easier for
by neutronicus 11y ago
As a counterpoint, I love this about Haskell.
It seems like my ability to hold logic in my head is partly visuo-spatial, and the terseness makes it easier for me to tell what's going on. (I also do Scientific Computing, so a general resemblance to mathematical notation is hugely helpful for me reading code).
- ajuc 11y agoI think similarly (I sometimes write code like this let A be sth X be sth else, ... and then the equations and predicates and pseudocode using one-letter names). Then I change these to regular variable names of course (my friends don't think it's readable). I also really like the fact that in clojure identifiers can use math symbols exactly for this reason. I love the fact that + is a regular function, that I don't have to wrap it to reduce or map with it, and don't have to remember how to turn it from infix to prefix or vice-versa. That it works with any number of arguments. Same with <, >, =. This the prettiest definition of dot product I've seen in any programming language (reduce + (map * v1 v2)) It's great because with 2 very universal language constructs you get to express tons of stuff cleanly. There's no incidental complexity there. But I just can't force myself to like Haskell operator-happy style. I've tried learning Haskell a few times, and never sticked to it for more than a week, because operators everywhere just make my uneasy, and there's too much specialized version of functions. I tried to learn common lisp a few times before clojure and nvere managed to get through the weird historical naming nonsense. Haskell sometimes feels like common lisp in that respect.