2

我有一些字符,例如 ["ab"],我只有两个数字,零和一。我想得到一个答案

[[('a', 1), ('b', 1)],
 [('a', 0), ('b', 1)],
 [('a', 1), ('b', 0)],
 [('a', 0), ('b', 0)]]

我是初学者,有人可以帮助我吗?

非常感谢你。

4

1 回答 1

4

最有趣的部分是生成和的所有可能序列的0列表1;一种方法是通过replicateM

> replicateM 2 [1,0]
[[1,1],[1,0],[0,1],[0,0]]

您可以使用mapzip从那里:

> map (zip "ab") (replicateM 2 [1,0])
[[('a',1),('b',1)],[('a',1),('b',0)],[('a',0),('b',1)],[('a',0),('b',0)]]

为了完全匹配您的答案,您必须做一些额外的修改:

> map (zip "ab" . reverse) (replicateM 2 [1,0])
[[('a',1),('b',1)],[('a',0),('b',1)],[('a',1),('b',0)],[('a',0),('b',0)]]
于 2012-05-07T06:37:10.603 回答