Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell:编写一个布尔函数,给出元素是否在列表中_Haskell_Hugs - Fatal编程技术网

Haskell:编写一个布尔函数,给出元素是否在列表中

Haskell:编写一个布尔函数,给出元素是否在列表中,haskell,hugs,Haskell,Hugs,我是Haskell的新手,我正在尝试编写一个函数,如果给定一个整数列表和另一个整数n,无论该整数是否在列表中,它都将返回一个布尔值 于是我写道: l=[n..m] occurs :: Int -> [Int] ->Bool occurs x l | x `elem` l = True | otherwise = False 但我得到了“unexpected=”或其他语法错误 函数出现编译良好。然而,表达式l=[n..m]是无意义的,除非已经存在n和m的合适定义 您的代码有

我是Haskell的新手,我正在尝试编写一个函数,如果给定一个整数列表和另一个整数n,无论该整数是否在列表中,它都将返回一个布尔值

于是我写道:

l=[n..m]
occurs :: Int -> [Int] ->Bool
occurs x l
  | x `elem` l = True
  | otherwise  = False

但我得到了“unexpected=”或其他语法错误


函数
出现
编译良好。然而,表达式
l=[n..m]
是无意义的,除非已经存在
n
m
的合适定义

您的代码有一个更大的问题。请注意,
elem::Eq a=>a->[a]->Bool
,它与
的类型非常类似,尤其是考虑到
Int
Eq
的一个实例


此外,您对
发生的定义中的
l
与上面一行中的
l=[m..n]
不同。
ocurses
中的
l
是一个自由变量,在调用
ocurses
时绑定到某个值。

函数
ocurses
编译良好。然而,表达式
l=[n..m]
是无意义的,除非已经存在
n
m
的合适定义

您的代码有一个更大的问题。请注意,
elem::Eq a=>a->[a]->Bool
,它与
的类型非常类似,尤其是考虑到
Int
Eq
的一个实例


此外,您对
发生的定义中的
l
与上面一行中的
l=[m..n]
不同。
ocurses
中的
l
是一个自由变量,在调用
ocurses
时绑定到某个值。

如果我很好地理解你的问题,理想的函数本质上是
elem

foo :: Eq a => a -> [a] -> Bool
foo x l = x `elem` l

foo将返回true或false

如果我能很好地理解你的问题,理想的功能本质上是
elem

foo :: Eq a => a -> [a] -> Bool
foo x l = x `elem` l

foo将返回true或false

你的函数可以编译。您能把完整的错误信息包括进来吗?这意味着
ocurses=elem
对吗?所以你什么都没做。“但是我得到了‘unexpected=`或其他什么’的语法错误。”。请不要像这样发布问题的描述,而是花时间键入问题的详细描述以及错误消息的全文。您是否检查了您的空白是否一致?确保您的代码中没有使用任何选项卡,因为这样可以使编辑器中的内容看起来正确,但对GHC来说不正确。这是我得到的错误的快照。实际上,我在代码中使用了制表符,因为我不知道如何在不执行代码的情况下“跳行”。最后,我用的是WinHugs。抱歉没有在前面包含此信息。您的函数已编译。您能把完整的错误信息包括进来吗?这意味着
ocurses=elem
对吗?所以你什么都没做。“但是我得到了‘unexpected=`或其他什么’的语法错误。”。请不要像这样发布问题的描述,而是花时间键入问题的详细描述以及错误消息的全文。您是否检查了您的空白是否一致?确保您的代码中没有使用任何选项卡,因为这样可以使编辑器中的内容看起来正确,但对GHC来说不正确。这是我得到的错误的快照。实际上,我在代码中使用了制表符,因为我不知道如何在不执行代码的情况下“跳行”。最后,我用的是WinHugs。很抱歉没有在前面包含这些信息。你也可以只写
foo=elem
绝对这就是为什么我说“本质就是元素”,提供的答案只是为了展示元素的神秘性。你也可以只写
foo=elem
绝对这就是为什么我说“本质就是元素”,所提供的答案只是为了说明元素的麦加主义。