我正在写一个函数,它将列表中的所有元素都精确地检查到另一个列表中是否有一次。我尝试:函数签名问题
cA = ['A', 'B', 'C', 'D'] {- original list -}
validate :: [Char] -> Bool
validate (n:[]) = if length (filter n cA) == 1 then True else False
validate (n:m) = if length (filter n cA) == 1 then validate m else False
返回
错误类型应用 *表达:过滤器n CA 期限:N 类型:字符 *不匹配:字符 - >布尔
想法?
'滤波器写为n cA'需要'N'是一个函数,但是你提供的'Char'。你可以通过用'(== n)'替换'n'来做到这一点。 –
在那里失去了什么,(== n)是什么? – MrD
'(== n)'是'm == n'的一部分 - 与'(==)m n'相同。这里'(==)'是两个参数的函数,所以'(== n)'是一个参数的函数,如果'm == n',给定一个'm'产生'True'。 –