【发布时间】:2015-04-08 13:46:58
【问题描述】:
我已经使用 Haskell 一个多星期了,所以我正在练习一些可能对某些事情有用的函数。我想递归地比较两个列表。当第一个列表出现在第二个列表中时,我只想返回列表开始匹配的索引。索引将从 0 开始。下面是我要执行的示例以进行说明:
subList [1,2,3] [4,4,1,2,3,5,6]
结果应该是 2
我已尝试对其进行编码:
subList :: [a] -> [a] -> a
subList [] = []
subList (x:xs) = x + 1 (subList xs)
subList xs = [ y:zs | (y,ys) <- select xs, zs <- subList ys]
where select [] = []
select (x:xs) = x
我收到“输入错误”,我无法弄清楚为什么我的语法不起作用。有什么建议吗?
【问题讨论】:
-
我收到错误,但没有一个说“输入错误”。您确定您粘贴的代码准确无误吗?您是否尝试过使用 just 这段代码制作文件,以确保错误出现在这部分?
标签: list haskell recursion sublist