我能够在相关的文档中找到++和concat。
我认为首先做以下事情会给我想要的东西:
[1, 3, 4] ++ [4, 5, 6]
但是你知道这只是[1,2,3,4,5,6]。
接受[1,2,3]和[4,5,6]以及[[1,2,3],[4,5,6]]需要做什么?
答案 0 :(得分:5)
如评论中所述,将两个列表合并为一个新列表的函数可以定义为:
combine :: [a] -> [a] -> [[a]]
combine xs ys = [xs,ys]
此功能无法多次应用以创建任意数量列表的列表。这样的函数将采用单个列表和列表列表,它会将单个列表添加到列表列表中,因此它将具有类型:
push :: [a] -> [[a]] -> [[a]]
这只是(:)
,但是:
push = (:)
正如评论中所提到的,值[x,y]
也可以写成x : y : []
。 1 因为这两种情况都可以用(:)
来完成,我会猜测你真正想要使用的是(:)
,有时会进入[]
,有时进入非空列表。
1 事实上,[x,y]
x:y:[]
仅为{{1}}。