-2
我想在Haskell中編寫一個程序,該程序需要一個數字列表並返回最大連續子序列的值。Guard中的else語句不會編譯:解析輸入'|'時的錯誤
我收到第7行的編譯錯誤,這是第一個守衛的行。
maxsubseq list = maxsubseqRecurse 0 list
maxsubseqRecurse sofar restOfList =
if null restOfList
then sofar
else
| if newSofar < 0
| then maxsubseqRecurse 0 newRestOfList
| else maxsubseqRecurse sofar newRestOfList
where
newSofar = sofar + head restOfList
newRestOfList = tail restOfList
爲什麼警衛無效的語法?我的意圖是使newSofar和newRestOfList的定義可用於有警衛的三條線。