私は既に存在するファイルに書きたいHaskellプログラムを書いています。プログラムはファイルにファイルを追加する前に各文字列を生成する必要があります。したがって、最初に計算全体を行い、ファイルに追加するのではなく、プログラムが計算されるごとにプログラムを追加したいと思います。ここでこのコードでLazy Evaluationを利用するにはどうすればよいですか?
は私がしようとしたコードは次のとおりです。
-- line in my do-notation of interet
-- filename = valid filename
-- records = list of record data types
appendFile fileName (map recordToString records)
recordToString :: Record -> String
recordToString r = club r ++ "," ++ mapName r ++ "," ++ nearestTown r ++ "," ++ terrain r ++ "," ++ mapGrade r ++ "," ++ gridRefOfSWCorner r ++ "," ++ gridRefOfNECorner r ++ "," ++ expectedCompletionDate r ++ "," ++ sizeSqKm r ++ ",\n"
私はC. A.マッキャンが、これはすでに怠惰である必要があり、言ったように、遅延評価
これはまだ怠け者ではありませんか?私は 'recordToString'呼び出しの結果を強制的に強制することはありません。 –
サイドノート: 'intercalate'関数を見てください。 –