我开始与 Haskell 合作,但我试图进行的这种平等检查没有奏效。
我有一个函数,countLetter a [b] c
其中a
是一个字符,b
是一个字符列表并且c
是一个 int。(类型声明通过很好。)但是我遇到了这个表达式的问题:
if a == head(b)
给我以下信息:
Type error in application
*** Expression : a == head b
*** Term : a
*** Type : [a]
*** Does not match : a
*** Because : unification would give infinite type
如果需要,我的完整代码是这样的:
countLetter :: char -> [char] -> int
countLetter a [b] c = if null b
then []
else
if a == head(b)
then countLetter a tail(b) c+1
else
countLetter head(b) tail(b) c
任何帮助或建议将不胜感激。谢谢你。