[Haskell-cafe] Re: Grokking monads by not overlooking concatMap

Peter Hercek phercek at gmail.com
Mon May 5 13:23:46 EDT 2008

Achim Schneider wrote:
> Peter Hercek <phercek at gmail.com> wrote:
>>> Haskell wins the wickedness of design contest by using [()] and []
>>> as truth values.
>> Maybe you wanted to say: "... by using [()] as True value and [] as
>>   False value" ... which does not seem that wicked (at least to me).
> Strangely enough, it reads exactly the same to me. IMHO, not working
> like filter is the thing that makes this wicked: guard doesn't care
> about what is returned, you could as well say (\_ -> [("foo","bar")])

Right, should be a list with one element in it to represent True.
So maybe it is a bit worse than C since list with two elements
  gives you two True values :-D
On the other side it is nice that guard works the expected way
  (using the same implementation) with other MonadPlus-es too.

More information about the Haskell-Cafe mailing list