我應該編寫一個功能來完成頭文件所建議的功能。然而,即時通訊掙扎着一些錯誤,我找不到我的代碼中的錯誤。這是我到目前爲止有:在Haskell中查找單詞序列中最長的單詞
import Data.Char
maxWord word = maxWord_h word 0 0
maxWord_h word currVal maxx
| word == [] = maxOf (currVal maxx)
| isAlpha (head word) = maxWord_h ((tail word) (currVal + 1) maxx)
| otherwise = maxWord_h (tail word) 0 (maxOf (currVal maxx))
maxOf a b
| a > b = a
| otherwise = b
和錯誤:
Couldn't match expected type `((a0 -> a0) -> a0)
-> (a0 -> a0) -> [Char]'
with actual type `[Char]'
The function `tail' is applied to three arguments,
but its type `[Char] -> [Char]' has only one
In the first argument of `maxord_h', namely
`((tail ord) (currVal + 1) maxx)'
In the expression: maxord_h ((tail ord) (currVal + 1) maxx)
我真的很感激,如果有人可以給我指出錯誤,並解釋它們。我是一個功能性編程的初學者,所以要溫柔。
在'maxWord_h'中,您可以通過兩種不同的方式調用'maxWord_h'。想想看,哪一個是正確的括號? – 2013-10-14 16:32:58
錯誤信息與給出的代碼不符。 –
@ Code-Guru:它的確如此,它只是錯過了字母W. – 2013-10-14 16:33:30