Ich versuche, ein Programm in Haskell zu schreiben, das eine Liste von Zahlen nimmt und den Wert der größten aufeinanderfolgenden Subsequenz zurückgibt.Guards in der else-Anweisung werden nicht kompiliert: Parse-Fehler bei Eingabe '|'
Ich bekomme einen Kompilierungsfehler für Zeile 7, die Zeile mit dem ersten Schutz.
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
Warum sind die Wächter nicht gültige Syntax? Meine Absicht ist es, die Definition von newSofar und newRestOfList für die drei Linien, in denen es Wachen gibt, verfügbar zu machen.