我的Haskell新手,我有一個問題。我想做一些函數,將列表的第一個元素並連接到第二個列表的所有元素,然後從第一個列表中獲取第二個元素並執行相同的操作。 例如,我想利用: [[1],[2],[3])和[[4],[5],[6]] 和輸出得到
[([1],[4]),([1],[5]),([1],[6]),
([2],[4]),([2],[5]),([2],[6]),
([3],[4]),([3],[5]),([3],[6])]
的閉合我發現一個是轉置
transpose [[1,2,3],[4,5,6]]
[[1,4],[2,5],[3,6]]
我將不勝感激任何幫助。
編輯: 對我感到羞恥。我找到了解決方案
[[x,y] | x <- [[1],[2],[3]], y <- [[4],[5],[6]]]
哪個結果是:
[[[1],[4]],[[1],[5]],[[1],[6]],[[2],[4]],[[2],[5]],[[2],[6]],[[3],[4]],[[3],[5]],[[3],[6]]]
看起來像:http://stackoverflow.com/questions/4119730/cartesian-product – Kru
感謝它正是我一直在尋找:) – ahaw