2

たとえば、["ab"]などの文字がいくつかあり、0と1の2つの数字しかありません。そして、私は次のような答えを得たい

[[('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]]

あなたはそこから使用することができ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)]]
于 2012-05-07T06:37:10.603 に答える