# Haskell pattern matching in if else Anweisung umschreiben



## Bobi (29. Jan 2017)

Hallo, ich will nur eine vordefinierte Haskell Funktion "take"  rekursiv schreiben 
Ich habe fertige Lösung die sieht so aus 

```
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


```
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 ?


----------



## VfL_Freak (30. Jan 2017)

Moin,

Dir ist aber schon klar, dass Du hier in einem _*JAVA*_-Forum bist ??? 

Gruß Klaus


----------



## Bobi (30. Jan 2017)

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.


----------



## Joose (30. Jan 2017)

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


----------

