私はコードを持っている:私は何をしたいかHaskellのIO再帰
read :: IO [Line]
read = do
line <- getLine
let count = length line
line2 <- getLine
if (length line2 /= count)
then error "too long or too short"
else read
は、ユーザが入力長-1行以上を しなければならない最初の行の長さに基づいて、ある、また、それらのいずれかの場合を行の長さが同じでない場合は、エラーメッセージが表示されます。
今、私のコードは無限ループです。 長さ-1の行を入力する方法はわかりません。これについてのいくつかの指針は認められるでしょう。
編集:ラインは、String型
あなたのコードが無限ループである理由は、それを停止させる唯一の方法はエラーです。さもなければ、それは常にifステートメントの他のブランチに続き、何度も繰り返し再帰します。 –