[Haskell-cafe] Why functional programming matters
Jonathan Cast
jonathanccast at fastmail.fm
Thu Jan 24 23:12:26 EST 2008
On 24 Jan 2008, at 3:04 PM, Evan Laforge wrote:
>> This takes an iterator over some collection of Foos and finds the one
>> with the highest value of updateTime. 9 lines of code, or 12 with
>> the
>> closing curly brackets.
>>
>> In Haskell this is so short and obvious you probably wouldn't bother
>> declaring it as a function, but if you did, here it is:
>>
>> -- Find the Foo that was most recently updated.
>> latestUpdate :: [Foo] -> Foo
>> latestUpdate foos = maximumBy (comparing updateTime) foos
>>
>> Of course you could always write it in point-free format, but I think
>> that would be over-egging things.
>
> Java's just wordy like that. In python you'd say max(foos, key=lambda
> x: x.update_time). Python / perl / ruby / smalltalk have had first
> class functions forever, so those are basically already in the
> mainstream.
But, while Python/Perl/Ruby/Smalltalk may have borrowed such
techniques already, the syntax still conspires against them. If the
audience knows one or more of these languages, I would suggest
finding its syntactic infelicities and contrasting with Haskell
(Haskell's syntax is its strongest point, IMHO).
jcc
More information about the Haskell-Cafe
mailing list