Obserwowanie lenistwa w Haskell
Czy jest możliwe napisanie funkcji Haskella, która zależy od tego, czy wartości są już obliczone, czy są tępe? Na przykład. JeślilazyShow :: [Int] -> String
pokazuje gromy jak?
i obliczamy wartości normalnie, w GHCi zobaczymy
> let nats = [0..]
> lazyShow nats
0 : ?
> nats !! 5
5
> lazyShow nats
0 : 1 : 2 : 3 : 4 : ?