無限の文字列を作成したいのですが:交互の無限ストリームを作成するにはどうすればよいですか?
「」といくつかの文字から始まり、「abc」としましょう。
["", "a", "b", "c", "aa", "ba", "ca", "ab", ..]
基本的なロジックは、最高の長さの最後の要素を取り、私の最初のリストから文字のそれぞれを追加することです「ABC:私はこのようになります無限のストリームで終わるにはどうすればよい正確
"彼らに繰り返し、繰り返す。しかし、これがHaskellで正しい方法であるかどうかはわかりません(問題の手続き的解決策に近いようです)。
私はのの流れを作ったので、私の最初の試みは一つだけの要素指定されたストリームを作成することでした:これは動作します
let as = iterate ((++) "a") ""
が、私はこれは私が最初に取得することができるように進化させることができるかわかりませんストリーム。
ありがとうございました!理解するのにはしばらく時間がかかりましたが、私はそれを得ると思います。各文字列の終わりに何かを追加しようとするのではなく、文字列の作成を最初の要素から最後の要素(これは常に "")に複製するようにしてください。 – Xzenon
はい、それは要点です。 –