3 ms·
Wholly disagree. Yes in Haskell you can define operators yourself (they are just functions but made out of special characters and placed after the first argumen
by cies 10y ago
Wholly disagree. Yes in Haskell you can define operators yourself (they are just functions but made out of special characters and placed after the first argument, e.g.: "Hi " ++ username); and this is often done by Haskellists. So you sometimes need to learn a few new operators that come with a library to WRITE code using that lib; but in order to READ code I rarely need to ref the docs, it is just evident from the context.
> it suffers from the Perl-ish woe of write-once and read-never.
My experience with Haskell is opposite, I think Haskell yields very maintainable code that is largely self documenting and allows me to confidently hack around old code bases.
My experience with Perl is the same. Very hard to read back, maintain or get productive on old code bases.
- continuational 10y agoI'll just leave [Control.Lens.Operators](http://hackage.haskell.org/package/lens-4.15.1/docs/Control-Lens-Operators.html http://hackage.haskell.org/package/lens-4.15.1/docs/Control-...) here... In defense of Haskell, the situation is similar in Scala. I think some people just prefer inventing their own operators instead of using descriptive names.
- name_for_now 10y agoTo be fair, a number of those operators are > This is an infix alias for cons. > This is an infix alias for snoc. > A convenient infix (flipped) version of toListOf. > An infix version of itoListOf. And a lot of them are (<+~) and friends.
- dleslie 10y agoshrug When I look at Haskell code I see overly terse expressions and nothing resembling the concept of self-documentation.
- cies 10y agoAre you fluent in Haskell?
- dleslie 10y agoI was some years ago, before I gave up on the language; but one shouldn't have to be fluent in a language for it to satisfy the concepts of self-documentation and readability. Requiring domain-specific knowledge of symbolic notation is not a trait of self-documenting languages. Recommending that the API search engine be open alongside or within your editor is likewise not a trait of self-documenting languages. Self-documenting languages are coherent at-a-glance to average programmers with little to no knowledge of the language. Haskell is not this.