我正在寫一個函數,它將列表中的所有元素都精確地檢查到另一個列表中是否有一次。我嘗試:函數簽名問題
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'。 –