2005-08-28 [長年日記]
λ. クロージャ
もちろん、Haskellでも出来ますよ。
ioCounter :: IO (IO Integer)
ioCounter =
do ref <- newIORef 0
return $ do modifyIORef ref (1+)
readIORef ref
test =
do c <- ioCounter
c >>= print -- => 1
c >>= print -- => 2
【2006-03-28 追記】 鷲見さんの sumim’s smalltalking-tos の 「Perl6 あなどれじ。クロージャ記述の短さ対決!」というエントリのコメントで、このコードを元に増分を毎回指定できるようにしたバージョンが紹介されていた。面白い。
[ツッコミを入れる]
