程序应该检查数字2是否属于集合A。但是x(2)的值和集合A(1,2,4,5)我想在编辑器中定义,而不是在控制台中定义。我有这个代码:
x = 2
let A = [1, 2, 4, 5];
checkIfElem :: Nat -> Bool
checkIfElem x A
|x`elem` A =True
|otherwise = False
字符串
它告诉我不正确的缩进,我不知道为什么我只是想让它返回一个true或false,我不想也不必要求一个数字或列表。
2条答案
按热度按时间3wabscal1#
let
。只需定义不带前导码的变量,就像对x
所做的那样。A
是非法的变量名。变量必须以小写字母开头。checkIfElem
类型声明它有一个参数,但它的定义有两个。r1wp621o2#
1.正如用户amalloy正确地提到的,在Haskell中,变量的名称(无论其类型和数据如何)和列表必须以小写形式定义,因为大写字母是为类型定义的。
变量和列表的内容可以在.hs文件中声明,没有问题(没有错误)。
在上面的例子中,它将是:
字符串
接下来,函数的定义
型
函数
checkIfElem
接收一个整数,一个整数列表,并返回一个布尔值现在,要使用编辑器中定义的变量和列表调用函数,并让Haskell使用存储在其中的相应值执行函数,您必须根据您需要的函数编写函数的名称,然后编写该函数所需的变量。
注意:变量,即使它们是列表,也总是被放置为“没有进一步的麻烦”,也就是说,只有没有直括号的变量,而没有其他印刷的变量。
在Haskell控制台中键入:
型
然后,Haskell将回答我们
True
,因为存储在变量x
中的值(为2)在列表a
中(由值1,2,4,5组成)