Haskell pattern matching in if else Anweisung umschreiben

Bobi

Bekanntes Mitglied
Hallo, ich will nur eine vordefinierte Haskell Funktion "take" rekursiv schreiben
Ich habe fertige Lösung die sieht so aus
Code:
taKe :: (Num i, Ord i) => i -> [a] -> [a]  
taKe' n _  
    | n <= 0   = []  
taKe' _ []     = []  
taKe' n (x:xs) = x : taKe (n-1) xs
Die Lösung ist mit pattern matching ich will das in if else umschreiben also so ungefähr
wie das unter

Code:
taKe :: (Num i, Ord i) => i -> [a] -> [a]  
taKe n _ = 
    if n <= 0   then  []  
    else if taKe _ []  then []  
    else taKe n (x:xs) = x : taKe (n-1) xs
Leider die Lösung funktioniert nicht vielleicht könnt ihr mir helfen bitte und
ein bisschen erklären grundsätzlich worauf man beim umschreiben pattern matching in if else
achten muss.
und sorry, dass ich so leichtes Problem hier Poste.

Zweite Frage, gibt es irgendwo im Internet die meisten Haskell vordefinierte Funktionen von Module: Prelude, List und Array die schon mit Rekursion gelöst wurden ?
 
Moin

ja ich weis, dass hier Java Forum ist aber das Problem ist so leicht, dachte ich vielleicht jemand mir helfen könnte.
Ich poste nicht mehr fragen über Haskell.

Du kannst das Thema löschen.
 
Du kannst sehr gerne Fragen über Haskell posten, aber dann bitte im richtigen Unterforum. 🙂
Aber du musst auch damit rechnen das du hier weniger (schnell) Hilfe bekommst als in einem Forum welches sich mit Haskell beschäftigt 😉
 

Zurück
Oben