リストの順列・組み合わせを取得する
順列を取得するにはData.Listのpermutationsを使います。
code: (haskell)
import Data.List
permutations 1..3
1,2,3],2,1,3,3,2,1,2,3,1,3,1,2,[1,3,2
Data.Listには冪集合を求めるsubsequenceがあります。
subsequenceの返り値を長さでfilterしてやると、組み合わせが取得できます。
code: (haskell)
import Data.List
subsequences 1..3
],1,2,1,2,3,1,3,2,3,[1,2,3
combinations n = filter ((== n) . length) . subsequences
combinations 2 1..3
1,2],1,3,[2,3
#recipe-collection