私はちょうどハスケルの学習を始めましたが、ループの不在は今は無限にイライラしています。私は関数のループを書く方法を考え出しました。しかし、私の問題は、ループを反復しながらいくつかの結果を出力したいということです。私はこの単純なタスクを実行するためにデバッグを使わなければならないようです。単純なハスケルループ
これで、メインの構造で文字列を10回印刷する方法の例を理解できます。
言い換えれば、私はこの10倍をしたい:main = do
putStrLn "a string"
感謝を。私はこれが私の仕事にとって非常に明るくなると感じています。
実際の質問は、関数型言語で "ループ"を実行する場合は、再帰を使用することです。厄介なのは、モナドのコンストラクタ(この場合はIO)のために型が並んでいないことです。そのため、あなたはモナドを「つなぎ合わせる」再帰的な構造が必要です。言い換えれば、これはちょうど再帰であり、ハスケルがIOを扱う「特別な」方法を処理するためのわずかなバリエーションがあります。 –
私はハスケルの初心者ですが、私が得た少しの洞察を分かち合いたいと思います。誰かが、ハスケルでループを実行したいときに、再帰またはリスト内包を考えていると私に言った。あなたの質問には関係ありませんが、リスト内のすべての要素を追加したいとします。もちろん、すべての要素を反復処理する必要があります。再帰が機能し、リストの理解も使用されます。 –