ghciの:sprint
値の中身を表示する時に評価しない
これはHaskellに遅延評価があるからある機能
例
code:ghci(hs)
ghci> let x = 1 + 2 :: Int -- この状態ではxは未評価
ghci> :sprint x
x = _ -- xがthunkであることを確認できる
ghci> seq x () -- xを評価する
()
ghci> :sprint x
x = 3 -- xに値が評価済みであることを確認できる
例
code:ghci(hs)
ghci> x !! 2
3
ghci> :sprint x
x = 1 : 2 : 3 : _ -- 4~20まではthunkであることを確認できる
型を明示しないと行けないのはなんで?
let x = 1 + 2
x
:sprint x
だと、thunkのままになっている
関連
thunkを評価してprintする