[Haskell-cafe] Re: Why purely in haskell?
Cristian Baboi
cristi at ot.onrc.ro
Fri Jan 11 05:07:57 EST 2008
On Fri, 11 Jan 2008 09:11:52 +0200, Lennart Augustsson
<lennart at augustsson.net> wrote:
> Some people seem to think that == is an equality predicate.
> This is a big source of confusion for them; until they realize that == is
> just another function returning Bool they will make claims like
> [1..]==[1..]
> having an unnatural result.
> The == function is only vaguely related to the equality predicate in
> that it
> is meant to be a computable approximation of semantic equality (but since
> it's overloaded it can be anything, of course).
>
>> So let's imagine:
>>
>> ones = 1 : ones
>>
>> ones' = repeat 1
>> where repeat n = n : repeat n
(==) :: Eq a => a -> a -> Bool
-- what is (y (y) ) by the way ?
-- how about ( y id ) ?
y f = f (y f).
ones :: Num a => [a]
ones = y (1 :)
repeat :: a -> [a]
repeat = \n -> y (n:)
ones' :: Num a => [a]
ones' = repeat 1 = (\n->y(n:)) 1 = y (1 : )
To be able to test them for equality, we must have Eq a.
So, the reason we cannot test them for equality is that we cannot test y
(a : ) == y (a : ) where a == a is testable.
________ Information from NOD32 ________
This message was checked by NOD32 Antivirus System for Linux Mail Servers.
part000.txt - is OK
http://www.eset.com
More information about the Haskell-Cafe
mailing list