-2
私はHaskellで数値のリストを取り、最大の連続したサブシーケンスの値を返すプログラムを書こうとしています。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の定義をガードがある3行で利用できるようにすることです。必要のないガード -