List 列表参数包含多个元素时发生Haskell get错误
我刚刚进入Haskell,我正在尝试做一个函数,给定一个数字列表,它将返回一个包含所有负数的列表。 所以我做了这个List 列表参数包含多个元素时发生Haskell get错误,list,haskell,parameters,List,Haskell,Parameters,我刚刚进入Haskell,我正在尝试做一个函数,给定一个数字列表,它将返回一个包含所有负数的列表。 所以我做了这个 negative:: [Int] -> [Int] negative [x] = [z | z <- [x], x < 0] 否定::[Int]->[Int] 负[x]=[z|z只需将表达式左侧的[x]替换为x,并将表达式x
negative:: [Int] -> [Int]
negative [x] = [z | z <- [x], x < 0]
否定::[Int]->[Int]
负[x]=[z|z只需将表达式左侧的[x]
替换为x
,并将表达式x<0
更改为z<0
(请记住,我们过滤的是单个元素,而不是容器本身)
我会这样做:
negative :: [Int] -> [Int]
negative x = [z | z <- x, z < 0]
否定::[Int]->[Int]
负x=[z | z[Int]
负xs=过滤器(<0)xs
(如果您不知道什么是高阶函数,请忽略上一个示例。您将在学习过程中了解它们)这个错误经常出现。我想知道是否有一些课程/教程促使初学者使用[x]
作为任意列表的符号,而不是单例列表。
negative :: [Int] -> [Int]
negative xs = filter (< 0) xs