【发布时间】:2017-01-10 19:06:15
【问题描述】:
这是我到目前为止写的,但我有点迷失了:
removeone :: [a] -> [[a]]
removeone [] = []
removeone (a:as) = [as] -- I'm lost here
这是我正在寻找的输出类型:
removeone [1,2,3] = [[2,3],[1,3],[1,2]]
removeone [1,2] = [[1],[2]]
解决此问题的最佳方法是什么?在 Java 中,我只是循环它,每次生成一个新列表,我会附加到一个预先存在的列表中。把它翻译成 Haskell 时我很迷茫。
【问题讨论】:
-
removeone (a:as) = as : map (a:) (removeone as) -
@user2407038 请不要将答案发布为 cmets。
-
@user2407038 我正要发布它作为答案,但现在我感觉很糟糕......