Haskell 获取具有特定第一个元素的排列
如何在Haskell中获得条件置换 这是我的代码:Haskell 获取具有特定第一个元素的排列,haskell,permutation,Haskell,Permutation,如何在Haskell中获得条件置换 这是我的代码: perm :: [Int] -> [[Int]] perm [] = [[]] perm xs = [ x:ps | x <- xs , ps <- perm ( xs\\[x] ) ] 我只想得到这个: [[1,2,3],[1,3,2]] 我想在函数“perm”中加入一些条件,允许我在进行排列时这样做,我不想做过滤器,因为我不想计算所有的排列。以1开头的[1,2,3]的排列只是[2,3]的排列前面添加了1,您可以使用 m
perm :: [Int] -> [[Int]]
perm [] = [[]]
perm xs = [ x:ps | x <- xs , ps <- perm ( xs\\[x] ) ]
我只想得到这个:
[[1,2,3],[1,3,2]]
我想在函数“perm”中加入一些条件,允许我在进行排列时这样做,我不想做过滤器,因为我不想计算所有的排列。以
1
开头的[1,2,3]
的排列只是[2,3]的排列
前面添加了1
,您可以使用
map (1:) . perm $ [2, 3]
map (1:) . perm $ [2, 3]