13 comments

[ 5.9 ms ] story [ 47.0 ms ] thread
Sorry about this comment, but I don't think you achieved what you wanted with this article. It's a bit rambling and unfocused, and you don't really ever talk to your audience in language they will understand without a prior background in functional programming. Case in point: there's plenty of Haskell, but the first Ruby is 3/4 of the way down. It would be more effective if you took one or two concepts in Haskell and explained them in detail, starting with Ruby.
The typography also drives me insane. Add some margin between headings and text, reduce kerning, get rid of p::first-letter { font-size: 200%; }
I got several paragraphs in and thought, where exactly is the Ruby?

Further to that, having inline code (without any monospace formatting), and talking about binary trees as an intro to Haskell, well, I would suspect that it alienates the people it tries to introduce.

I'll own up to my ignorance, of course. I've no CS degree, I've encountered no occasion where I'd implement CS classics like linked lists and binary trees. My understanding goes as far as sort of vaguely recognising them. I'm not going to boast, but I don't doubt I'm alone here.

I couldn't finish the article, because the content didn't match the expectations the title set.

It's possible that you don't roll your own custom trees and other data types because your language of choice doesn't make using your own data structures easy.
Language of choices appart, maybe it's because:

"I've encountered no occasion where I'd implement CS classics like linked lists and binary trees. My understanding goes as far as sort of vaguely recognising them."

Perhaps, but demonstrating a custom binary tree implementation in Haskell is not the right way to lure blub programmers.

Show them how Haskell makes it easier to solve the problems they face in their day-to-day work and you might start to make some converts.

My languages of choice do make creating custom data structures at least as easy as Haskell, and I still rarely do it.

In most cases I've found it's faster in implementation time, testing time, and running time to just use built in data structures when possible. Even in Haskell.

binary trees actually make a fantastic hook to interest people in haskell, because operations like defining, constructing and balancing trees are so much easier than in most languages.
Too much talking. Not enough code.
If you're telling a story, don't digress. In particular, don't have a six-paragraph section entitled "Digression."

A challenge for the author: summarize the article in a single sentence that any Ruby developer would understand.