Yeah, I realized that right after I sent the email (I was composing "on the fly" and not copy-and-pasting). I think the main reason I wrote it as an explicit lambda expression rather than just single = (==) was because I wanted it to parallel the other definitions. IMO, the preferred way to write it would have been "single x = \y -> x == y; I think "single = (==)" is much more difficult to understand at first glance. Doesn't really matter though; presumably the compiler would fix all of this :). -- Hal Daume III "Computer science is no more about computers | hdaume@isi.edu than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume On Tue, 23 Apr 2002, Christian Sievers wrote:
Hal Daume III wrote:
I'd like to be able to define something like
single x = \y -> if x == y then True else False
Just a note on style: it always hurts me to see something like
if term then True else False
-- this is just the same as 'term'.
So you could say
single x = \y -> x==y
which is in turn just the same as
single x = (x==)
which is, amazingly, nothing more than
single = (==)
-- one can debatte whether this is still better style than the first variant, but it's surely interesting to realize.
All the best, Christian Sievers