Ich habe einige Funktionen (charfreq, wordfreq, charcount, wordcount, parerror) und ich möchte es in DataStructure mit der angegebenen Zeichenfolge verwenden.Aber wie kann ich es tun? Ich versuche auf diese und viele Weise, aber ich habe alle Fehler. Vielen Dank im Voraus.ist "Aufruf von Funktionen in Datenstruktur" in Haskell möglich?
data StrStat = StrStat { charfreq :: [(Char , Int)]
, wordfreq :: [([ Char ] , Int)]
, charcount :: Int
, wordcount :: Int
, parerror::Maybe Int
}
analyze :: [Char] -> StrStat
analyze x = StrStat { charfreq = (charfreq x) {-this line gives error-}
, wordfreq = (wordfreq x)
, charcount = (charcount x)
, wordcount = (wordcount x)
, parerror = (parerror x)
}
Fehlermeldung lautet: Syntax error in input (unexpected `=')
analyze :: [Char] -> StrStat
analyze x = StrStat { "charfreq" = (charfreq x)
, "wordfreq" = (wordfreq x)
, "charcount" = (charcount x)
, "wordcount" = (wordcount x)
, "parerror" = (parerror x)
}
wenn ich vorherige versuchte, bekam ich den gleichen Fehler auf der gleichen Linie
Die OP stellt fest, dass er Funktionen wie 'charfreq' bereits definiert, so macht der Code für mich Sinn. Aber wenn ich das versuche, ist der Fehler, den ich bekomme, "Mehrere Deklarationen von' charfreq '". Beachten Sie, dass der Fehler, den Sie erhalten haben, nicht mit dem in der Frage übereinstimmt. – svick
@svick: guter Punkt. Ich weiß nicht, wie ich den OP-Fehler neu erstellen soll. – rampion
@svick: Wenn 'charfreq' von einem anderen Modul importiert wurde, erhalten Sie erst einen Fehler, wenn Sie versuchen, es zu verwenden. – hammar