【发布时间】:2012-07-12 22:51:19
【问题描述】:
我试图弄清楚 Haskell 中的迭代 I/O 是什么。我用一些 definitions 检查了以下 Haskell-Wiki。
我不明白那个函数的第二行、第三行和最后两行的含义:
enumerator :: FilePath -> Iteratee (Maybe Char) o -> IO o
enumerator file it = withFile file ReadMode
$ \h -> fix (\rc it -> case it of
Done o -> return o
Next f -> do
eof <- hIsEOF h
case eof of
False -> do
c <- hGetChar h
rc (f (Just c))
True -> rc (f Nothing)
) it
我知道 iteratee 函数是做什么的,但我不明白一些行。 这个维基页面上的其他功能真的很神秘。我不明白他们在做什么,因为我错过了一些解释。
【问题讨论】:
标签: haskell enumerator iterate