-4

Haskell でこのストリームを作成しようとしています l = ["","a","aa","aaa",...]

誰かが私を助けることができますか?

4

4 に答える 4

7

初期化と繰り返しを組み合わせる:

λ: let l = inits $ repeat 'a'
λ: take 10 l
["","a","aa","aaa","aaaa","aaaaa","aaaaaa","aaaaaaa","aaaaaaaa","aaaaaaaaa"]
于 2013-05-27T14:00:00.613 に答える
6

を使用して空のリストに要素を繰り返しコンスするだけで、そこに到達できます

iterate :: (a -> a) -> a -> [a]

するだけで

iterate ('a':) ""
于 2013-05-27T17:32:40.947 に答える
2

定義済み関数を使用しない場合:

l = l' ""
    where l' s = s : l' ('a':s)
于 2013-05-27T20:02:35.807 に答える
1
[replicate i 'a' | i <- [0..]]

これは正確には高度なものではありません。

于 2013-05-27T13:55:43.520 に答える