[Haskell-cafe] Re: Wikipedia on first-class object
jonathanccast at fastmail.fm
Thu Dec 27 18:13:09 EST 2007
On 27 Dec 2007, at 4:54 PM, Achim Schneider wrote:
> Jonathan Cast <jonathanccast at fastmail.fm> wrote:
>> _|_ is the denotation of every Haskell expression whose
>> denotation is _|_.
>> Why take away _|_?
> Because, when zenning about
> instance (Eq a) => Eq [a] where
>  ==  = True
> (x:xs) == (y:ys) = x == y && xs == ys
> _xs == _ys = False
> [n..] == [m..],
> the first thing I notice is
> n == m && n+1 == m+1
> , which already expresses all of infinity in one instance and can be
> trivially cancelled to
Danger, Will Robinson!
Cancellation derives from valid equations, it does not lead to them.
(x^2 - 1)/(x - 1) /= 2 when x = 1, however many times you cancel it.
> n == m
> , which makes the whole darn thing only _|_ if n or m is _|_, which no
> member of [n..] can be as long as n isn't or 1 or + has funny ideas.
> I finally begin to understand my love and hate relationship with
> formalisms: It involves cuddling with fixed points while protecting
> them from evil data and fixed points they don't like as well as
> reduction strategies that don't see their full beauty.
Love formalisms or hate them as much as you want.
They still define Haskell's semantics.
More information about the Haskell-Cafe