[Haskell-cafe] Re: Wikipedia on first-class object
Peter Gammie
peteg42 at gmail.com
Fri Dec 28 06:13:34 EST 2007
On 28/12/2007, at 5:50 PM, Miguel Mitrofanov wrote:
>> Right, so when I say to GHCi:
>
>> Prelude> take 5 [1..]
>
>> and it says:
>
>> [1,2,3,4,5]
>
>> then it really has computed the entirety of the infinite sequence
>
>> [1..], and not some approximation?
>
>
> Of course not! In fact, it doesn't even compute the value "1". It
> just juggles with the bytes somehow, so that it seems that it
> computes the whole sequence and then applies "take 5". But does it
> really matter if it computes 5 integers, or 10, or the whole
> sequence, at least if we are not concerned about performance?
I'll bite. So what do you expect:
take 5 [1,2,3,4,5,undefined]
to do? How about:
take 5 (1:2:3:4:undefined)
?
So it does seem to matter how much of the list it evaluates...
>> Perhaps it is better to say that in a lazy language both
>> approximations and maximal values (least upper bounds of a chain) are
>> interesting.
>
> Well, that depends of your notion of interesting.
I defined it - I'm interested in things that are observationally
equivalent. Please read the generalised-take-lemma paper. It will
clear up some of this confusion.
cheers
peter
More information about the Haskell-Cafe
mailing list