我想生成给定字母表中的所有单词。例如:生成字母表中的所有单词
['a', 'b'] -> ["","a","b","aa","ba","ab","bb","aaa","baa","aba","bba","aab" ...]
我管理由现在实现这个功能:
myfunc :: [a] -> [[[a]]]
myfunc l = iterate fromList $ map (\x -> x : []) l
where
fromList ls = [y : ys | y <- l, ys <- ls]
但这个函数不正确产生的结果。我希望答案是一个字符串,例如只有前5个元素 - >["","a","b","aa","ba"]
。任何帮助如何做到这一点?
@melpomene:我认为OP并不意味着子列表。他们想要生成*所有*可能的序列,其中包含字母'“ab”'。 –
是的..我的错误对不起..我改变了文本 – JoeDonald