Error "Keine Instanz für (Num [t])" in der Collatz-Funktion
Ich bin neu in Haskell und programmiere im Allgemeinen. Ich versuche eine Funktion zu definieren, die die Folge von Collatz-Zahlen aus @ generiern. Ich habe
collatz n = (collatz' n) : 1
where collatz' n = (takeWhile (>1) (collatz'' n))
where collatz'' n = n : collatz'' (collatz''' n)
where collatz''' 1 = 1
collatz''' n = if (even n) then (div n 2) else ((3*2)+1)
Wenn ich dies in GHCi ausführe, erhalte ich den Fehler:
No instance for (Num [t])
arising from the literal `2' at <interactive>:1:7
Possible fix: add an instance declaration for (Num [t])
Ich weiß nicht was das bedeutet. Das Problem scheint "1" an die Liste anzuhängen. Dieses Problem tritt auf, weil
collatz' n = (takeWhile (>0) (collatz'' n))
erzeugt eine unendliche Folge von "1", die der richtigen Collatz-Folge folgt; jedoch
collatz' n = (takeWhile (>1) (collatz'' n))
generiert alle Collatz-Nummern ausn außer "1". Was mache ich falsch