[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