我有一些字符,例如[“ab”],我只有两个数字,0和1。 我希望得到像
这样的答案[[('a', 1), ('b', 1)],
[('a', 0), ('b', 1)],
[('a', 1), ('b', 0)],
[('a', 0), ('b', 0)]]
我是初学者,有人能帮帮我吗?
非常感谢。
答案 0 :(得分:4)
最有趣的部分是生成0
和1
的所有可能序列的列表;一种方法是通过replicateM
:
> replicateM 2 [1,0]
[[1,1],[1,0],[0,1],[0,0]]
您可以使用map
和zip
:
> 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)]]