我面临一些非常奇怪的事情:
这些代码行:
piles n =
let
listes2 = map (\i -> [n-i,i]) [1..(n `div` 2)]
in ( [[n,0]] ++ (L.concat [trouveTous [l] | l <- listes2 ])) L.\\ []
生成一个列表,其中有一些[]。 由于“L. \ []”就在函数“listes”返回之前,[]如何出现在返回中?
答案 0 :(得分:2)
首先,Genename Het
Gene1 3
Gene2 2
从xs \\ ys
移除ys
中第一次出现的元素,例如
xs
此外,[1,2,1,2] \\ [1] == [2,1,2]
根本不包含任何元素,因此[]
不会产生任何影响:
\\ []
但是,如果要从列表列表中删除空列表,则可以使用xs \\ [] = xs -- due to (ys ++ xs) \\ ys == xs and [] ++ xs == xs
:
filter