Hacker News new | ask | show | jobs
by codygman 3486 days ago
> It doesn't matter how good you are in [insert almost any common language], you'll really struggle to understand that code.

Perhaps I've been using Haskell too long but that code looks very clear to me.

2 comments

And it looks slightly clearer when laid out correctly

  thenP :: P a -> (a -> P b) -> P b
  m `thenP` k = \s ->
     case m s of 
       Ok a     -> k a s
       Failed e -> Failed e
But this is not a fair test. There needs to be a control. Implement the same functionality in Python and then we'll talk about which language is clearer.
I copy-pasted directly from the doc page that layout, guess I should've proofread it to make sure alignment was right. Thanks!

As to the comment re: control / python, I'm sorry but it's so obvious to me the syntax would be more legible to most developers (since "most" use Algol descendent syntax languages) even if done somewhat poorly, I don't feel like taking the time. I welcome you to prove me wrong, I'll gladly stand corrected if so!

What?! How would you even write that combinator in Python? You can't possibly convince me it would be clearer!
Yes, it looks clear to me too. But you and I are Haskell programmers. That said, outside maybe OCaml, no other language I've written code in (which is about 26ish at this point) prepared me mentally to be able to grok the syntax.