Hacker News new | ask | show | jobs
by papsosouid 4890 days ago
Yeah, those tricky monoids. So hard to learn, and even harder to use a library based on them. You have a whole whopping one function to learn, that does some incredibly convoluted and arcane nonsense called "appending"? What a horrible language. You should definitely devote more time to complaining about ridiculous strawmen like this, it seems like a very good use of time.
2 comments

Here is some of my code to parse html:

    tstamp <- this ! "data-timestamp" >>> arr parseTime -< el
    (path, score) <- css "td[class~=score-time] a" >>>
        (this ! "href") &&& (getAllText >>> arr parseScore) -< el
So yes, you do have to learn about arrow syntax in order to use HXT efficiently. For most newbies it is not an easy concept to grasp, not helped by the fact that HXT isn't a very well documented library.

    tstamp <- this ! "data-timestamp" >>> arr parseTime -< el
This, on the other hand, is one of the thing I don't like about Haskell: there are 4 operators on this line, and no easy way to see, at a glance, their precedence. Also, some operators are "mentally interpreted" as flowing data left to right or right to left; changing the direction mid-statement, I find confusing. I have the same problem when unix shell commands are expressed like this:

    program < input > output
"Use >>> like a pipe in unix" is not an easy concept to grasp?
I shouldn't have to learn what parser combinators are to just rip a few things out of a tree of XML.
Good, good. Now take it to the next level. Rather than just using a scary word that means something very ordinary and mundane, try making up totally nonsense combinations. Like "I shouldn't have to learn co-recursive monomorphic functoid transformers just to open a file!".