【发布时间】:2021-06-25 15:54:52
【问题描述】:
filter :: (a -> Bool) -> [a] -> [a]
filter = (\x -> x % 2 == 0) [1,2,3,4,5]
在运行时在 Haskell 中使用以下代码时出现错误: '变量不在范围内: (%) :: [整数] -> Bool -> (a -> Bool) -> [a] -> [a]'
这是什么意思?
我正在尝试创建一个接受列表并返回偶数的函数。对haskell如此陌生,这就是我所做的一切,但我仍然遇到错误。我已经google了,但我找不到解决方案
【问题讨论】:
-
您的第一行是
filter库函数的正确类型签名。您的第二行是filter的重新定义,它隐藏了库中的定义。编译器正在尝试将您的过滤器定义与库中的正确类型统一。
标签: haskell functional-programming higher-order-functions