我是Haskell的新手,我正在尝试编写一个函数,如果给出一个整数列表,另一个整数n将返回一个布尔值,无论整数是否在列表中.
所以我写道:
l=[n..m]
occurs :: Int -> [Int] ->Bool
occurs x l
| x `elem` l = True
| otherwise = False
Run Code Online (Sandbox Code Playgroud)
但我得到'unexpected ='或其他的语法错误.

该函数occurs编译好.但是,表达式l = [n..m]是无义的,除非对合适的定义n和m已经存在.
您的代码存在更大的问题.注意elem :: Eq a => a -> [a] -> Bool哪个类型非常相似occurs,特别是考虑的Int是一个实例Eq.
此外,l您的定义中occurs的l = [m..n]内容与上面的内容不同.的l在occurs是一个自由变量这势必一些值时occurs被调用.
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |