Haskell では、完全に計算するのではなく、サンクを使用するため、無限リストを使用できます。データのサンクをシリアル化するか、ファイルに保存する方法があるかどうか疑問に思っています。たとえば、 list があるとします[0..]
。次に、いくつかの処理を行います (私は主にtail
andに興味がありますが、 orの実行も(:)
サポートする必要があります)。ここに、私が探しているものの例を示します。filter
map
serial::(SerialThunk a)=>a->serThunk
serialized = serial ([0..] :: [Int])
main=writeToFile "foo.txt" serialized
と
deserial::(SerialThunk a)=>serThunk->a
main=do
deserialized <- readFromFile "foo.txt" :: IO [Int]
print $ take 10 deserialized