3 ms·
I really didn't like some of his examples (especially the part containing 'longer_than_5', that was hideous IMO!) He tried explaining Ruby's simplicity…by using
by ashleyw 16y ago
I really didn't like some of his examples (especially the part containing 'longer_than_5', that was hideous IMO!) He tried explaining Ruby's simplicity…by using some of the most confusing idioms.
For example:
array.select &:even?
Is really just:
array.select{|n| n.even?}
I generally always use the latter. It's just cleaner. I hate overly clever code.
- jpr 16y agoOverly clever or confusing to you, idiomatic to others (and vice versa).
- axod 16y agoThe former isn't guessable unless you know special modifier characters. It's also error prone if you typo a single character. The latter is readable.
- djacobs 16y agoThat's true, but the modifier character* (not more than one) is consistent: & says "take the named method, call to_proc on it, and pass it in as a block". Since many methods allow blocks to be passed to them, this kind of code is useful and well-understood, I think. I want to note that the &:even? idiom is only used in the simplest cases.
- chc 16y agoYou're contrasting "not guessable" with "readable." The behavior of Ruby's `||` is not guessable for a lot of people but it's still quite readable if you know the language.
- ionfish 16y agoWhich of these Haskell examples do you prefer, then? filter even xs filter (\x -> even x) xs