Ich habe gerade meinen Zeh in die Welt von Haskell getaucht, als Teil meiner Reise der Programmierung der Erleuchtung (von prozedural zu OOP weitergehend zu jetzt funktionierend).Lernen Haskell Karten, Falten, Schleifen und Rekursion
Ich habe versucht, eine Online Haskell Evaluator.
Allerdings bin ich jetzt auf einem Problem nicht:
eine einfache Funktion erstellen, die die Gesamtsumme einer Reihe von Zahlen gibt.
In einer prozeduralen Sprache diesen für mich ist leicht genug, um (unter Verwendung von Rekursion) (C#):
private int sum(ArrayList x, int i)
{
if (!(x.Count < i + 1)) {
int t = 0;
t = x.Item(i);
t = sum(x, i + 1) + t;
return t;
}
}
Alles sehr fein aber bei Haskell meines gescheiterten Versuch war so:
let sum x = x+sum in map sum [1..10]
diese führte zu dem folgenden Fehler (von der oben genannten Website):
Occurs check: cannot construct the infinite type: a = a -> t
Bitte beachten Sie, dass ich Haskell nur für die letzten 30 Minuten verwendet habe!
Ich suche nicht einfach nach einer Antwort, sondern eine Erklärung dafür.
Dies war die umfassende Erklärung, die ich suchte. Nachdem ich dies gelesen und weiter gelesen habe, verstehe ich es jetzt ein wenig besser. – Darknight