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@functor.nl GPG: 0xE6FABFAB