【发布时间】:2016-10-05 04:19:30
【问题描述】:
我刚进入 Haskell,我正在尝试创建一个函数,它给出一个数字列表将返回其中所有负数的列表。 所以我这样做了
negative:: [Int] -> [Int]
negative [x] = [z | z <- [x], x < 0]
当我尝试只使用列表中的一个元素时,它可以正常工作
负 [-1] 返回 [-1]
负[1]返回[]
但是,当我添加更多数字时,例如 负 [0,-1] 我收到以下错误:
程序错误:模式匹配失败:负 [Num_fromInt instNum_v30 0,Num_fromInt instNum_v30 -1]
我尝试输入带空格和不带空格的数字,但结果是一样的。我猜我的代码有问题,但由于我还在习惯 Haskell,我很难找到它。任何帮助将不胜感激。
【问题讨论】:
-
这个错误在 SO 上出现的频率很高。我想知道是否有一些课程/教程可以促使初学者使用
[x]作为任意列表的符号,而不是单例列表。
标签: list haskell parameters