[Haskell-cafe] is value evaluated?

Jochem Berndsen jochem at functor.nl
Fri May 8 02:45:01 EDT 2009


Nikhil Patil wrote:
> Hi,
>
> I am curious to know if there is a function in Haskell to find if a
certain
> value has already been evaluated. The function I need would have the type:
>
>> (?!) :: a -> Bool

I will call this function `evaluated', since it is not a binary operator.

The existence of such a function would violate referential transparency.

What would the value of
( evaluated (fibs !! 100), evaluated (fibs !! 100) )
be ? Suppose that I first print the `fst' of this tuple, then print the
101st Fibonacci nummber, and then print the `snd' of this tuple. By lazy
evaluation, one would expect that this yields

False
<the 101st Fibonacci number>
True

but this violates referential transparency.

Cheers,
-- 
Jochem Berndsen | jochem at functor.nl
GPG: 0xE6FABFAB


More information about the Haskell-Cafe mailing list