Pau*_*ill -2 haskell functional-programming higher-order-functions
filter :: (a -> Bool) -> [a] -> [a]
filter = (\x -> x % 2 == 0) [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
运行时在 Haskell 中使用下面的代码我得到一个错误:'变量不在范围内:(%) :: [Integer] -> Bool -> (a -> Bool) -> [a] -> [a]'
这是什么意思 ?
我试图创建一个接受列表并返回偶数的函数。对 haskell 如此陌生,这就是我所管理的,但我仍然遇到错误。我用谷歌搜索但我找不到解决方案
它只是意味着%没有定义。
当我打开 ghci shell 并询问+and%运算符的类型时,我看到它+已定义,但是%我得到了相同的错误:
Prelude> :t (+)
(+) :: Num a => a -> a -> a
Prelude> :t (%)
<interactive>:1:1: error: Variable not in scope: %
Run Code Online (Sandbox Code Playgroud)
模数可用作mod函数。
不过,您的示例中还有其他一些问题:
filter在 prelude 中命名的函数