如果列表的长度为偶数Haskell,如何返回true?

如果列表的长度为偶数Haskell,如何返回true?,haskell,Haskell,我希望在列表长度为true时返回true,否则返回false listnumber :: [Int] -> Bool listnumber [] = 0 listnumber (x:xs) =1 + listnumber xs 正如bradrn指出的,当前函数返回列表的长度。需要更改的是返回内容的类型,因为您当前返回的是整数而不是布尔表达式 listcounteven::[a]>Bool ListCount偶数[]=True ListCount偶数(xAE:xs)=不是$ListCou

我希望在列表长度为true时返回true,否则返回false

listnumber :: [Int] -> Bool 
listnumber [] = 0
listnumber (x:xs) =1 + listnumber xs

正如bradrn指出的,当前函数返回列表的长度。需要更改的是返回内容的类型,因为您当前返回的是整数而不是布尔表达式

listcounteven::[a]>Bool
ListCount偶数[]=True
ListCount偶数(xAE:xs)=不是$ListCount偶数xs
为我们执行函数应用程序。 此代码表示如果输入列表为空,则返回True。否则,我们将在对列表其余部分求反时递归。这会导致
not
前置到基本大小写的次数是列表长度的两倍,例如

listcounteven[]=True——基本情况
ListCount偶数[1]=非$ListCount偶数[]=非$True=False
ListCount偶数[1,2]=非$ListCount偶数[2]=非$not$ListCount偶数[]=非$not$True=True
--等等。
但是,如果您允许自己使用前奏功能

listcounteven::[a]>Bool
ListCount偶数=偶数。长度

解决方案变得简洁。执行我们可以直接返回的函数组合。

提示:您的
listnumber
当前正在返回列表的长度,而不是它是奇数还是偶数。(这也意味着你的类型签名是错误的:它应该是
listnumber::[Int]->Int
)现在你只需要再做一件事来解决你的问题:计算
listnumber
计算的长度,找出它是奇数还是偶数。是的,我想看看它是奇数还是偶数,但我认为这是我得到的最接近的结果。也许有必要解释一下重复应用
而不是
是如何给出所需的输出的?@bradrn我试图用一些简单的示例输出来这样做,不确定它们是否有用,或者只是更容易理解。main.hs:2:43:error:parse error on input“=”也许您需要在“do”块中使用“let”?e、 g.“让x=5”代替“x=5”@kulis是什么代码给了你这个错误?请注意,我的答案中的第二个代码块不是代码,而是示例输入和输出的说明。我不知道你在哪里建议需要“let”。