Haskell でこのストリームを作成しようとしています l = ["","a","aa","aaa",...]
。
誰かが私を助けることができますか?
初期化と繰り返しを組み合わせる:
λ: let l = inits $ repeat 'a'
λ: take 10 l
["","a","aa","aaa","aaaa","aaaaa","aaaaaa","aaaaaaa","aaaaaaaa","aaaaaaaaa"]
を使用して空のリストに要素を繰り返しコンスするだけで、そこに到達できます
iterate :: (a -> a) -> a -> [a]
するだけで
iterate ('a':) ""
定義済み関数を使用しない場合:
l = l' ""
where l' s = s : l' ('a':s)
[replicate i 'a' | i <- [0..]]
これは正確には高度なものではありません。