我有,将带从一个列表中的两个元件和从所述第二列表中的一个元件的功能,但有一个问题,如果该给定的列表仅具有一个元素:Haskell,一个列表中的两个元素后跟一个元素的其他列表? (模式匹配)
例如:
*Main> g2 [1] [5..10]
[1]
我想有这样的输出:
*Main> g2 [1] [5..10]
[1,5]
它适用于单超过1元:
*Main> g2 [1..5] [8..10]
[1,2,8,3,4,9,5]
*Main> g2 [1,2,3,4] [6,7,8,9]
[1,2,6,3,4,7]
我的代码:
g2 (x1:x2:xs) (y:ys) = x1:x2:y:(g2 xs ys)
g2 (x1:[]) y = x1:[]
g2 [] ys = []
我想我忘了一个模式。
你的第二条直接说不会忽略的情况下。只是,它显然没有按照你的规范来处理它! - 注意,具有固定数量元素的列表通常使用列表语法而不是':'更好地构造/解构,即写入'[x 1]'而不是'x 1:[]'。 – leftaroundabout