2013-05-27 101 views

回答

1
[replicate i 'a' | i <- [0..]] 

這不是完全先進的東西。通過只是在做

iterate ('a':) "" 
7

結合inits與重複功能:

l = l' "" 
    where l' s = s : l' ('a':s) 
6

我們只要通過反覆consing元素到空列表那裏使用

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

+2

這比其他方法更具有內存效率。我們都希望我們的玩具示例儘可能高效,對嗎? –

2

不使用預定義

λ: let l = inits $ repeat 'a' 
λ: take 10 l 
["","a","aa","aaa","aaaa","aaaaa","aaaaaa","aaaaaaa","aaaaaaaa","aaaaaaaaa"]