[(e)|这个haskell代码中的e< - list,x / = e]?
perms :: Eq a => [a] -> [[a]]
perms [] = [[]]
perms list = do
x <- list
tails <- perms [(e) | e <- list, x /= e]
return (x:tails)
答案 0 :(得分:3)
表达式
[(e) | e <- list, x /= e]
是一个列表理解,它是一个从一些现有列表中创建新列表的构造。
它会返回由(e)
中的每个e
生成的所有元素list
组成的列表,仅包含x /= e
的{{1}}。
在这种情况下,结果列表为list
,其中所有x
值都已删除。
整个列表理解等同于filter (x /=) list
。