[Haskell-cafe] Re: Why purely in haskell?
barsoap at web.de
Thu Jan 10 19:12:02 EST 2008
Tillmann Rendel <rendel at rbg.informatik.tu-darmstadt.de> wrote:
> Achim Schneider wrote:
> > [1..] == [1..]
> > [some discussion about the nontermination of this expression]
> > The essence of laziness is to do the least work necessary to cause
> > the desired effect, which is to see that the set of natural numbers
> > equals the set of natural numbers, which, axiomatically, is always
> > computable in O(1) by equality by identity.
> This would make sense if Haskell had inbuild equality and (==) where
> part of the formal semantics of Haskell, wich it isn't. (==) is a
> library function like every other library function. How could the
> language or a system implementing the language decide wether this or
> any other library function returns True without actually running it?
The list instance for Eq might eg. know something about the structure
of the lists and be smart enough not to get caught in the recursion of x
= 1:1:x and y = 1:1:1:y so it could successfully compare x == y to
True in six compares.
> Haskell is a programming language, not a theorem prover.
Yes I know. That's why I wrote axiomatic and operational semantics, not
denotational; I didn't want to start a bar fight.
(c) this sig last receiving data processing entity. Inspect headers for
past copyright information. All rights reserved. Unauthorised copying,
hiring, renting, public performance and/or broadcasting of this
More information about the Haskell-Cafe