基本上,我想创建一个函数,该函数接受一个整数列表和另一个列表(该列表可以是任何类型),并以整数列表指定的间隔生成另一个列表,其中包含“其他列表”中的元素. 如果我输入:
ixs [2,3,1] [3,2,1]
[2,1,3]
到目前为止,我有:
ix :: Int -> [a] -> a
ix a [] = error "Empty list"
ix 1 (x:xs) = x
ix a (x:xs) = ix (a-1) xs
ixs :: [Int] -> [a] -> [a]
ixs [] _ = []
ixs _ [] = []
ixs (x:xs) (y) = ix x y: []
使用此代码,我只能得到一个返回值,如下所示:
ixs [1,2] [2,1]
[2]
如何ix
重复调用该函数(x:xs)
以使其返回我想要的所有值?
编辑:我想在不使用任何标准前奏函数的情况下做到这一点。我只想使用递归。