Наблюдение за ленью в Хаскеле
Можно ли написать функцию на Haskell, которая зависит от того, вычисляются ли уже значения или являются thunks? Например. еслиlazyShow :: [Int] -> String
показывает гром как?
и рассчитанные значения обычно, в GHCi мы увидим
> let nats = [0..]
> lazyShow nats
0 : ?
> nats !! 5
5
> lazyShow nats
0 : 1 : 2 : 3 : 4 : ?