Gepostet: |
Einfache Funktion in Haskell, verstehe Sie aber nicht | ||||||||||
Hallo, ich bin noch ziemlicher Programmieranfaenger und fange mit Haskell an. Habe ein Beispiel mit dem ich mich beschaftige aber es nicht verstehe. Wie ich es verstehe, soll in diesem Beispiel zwei Zahlen in einer Liste angegeben werden, wie z.b. [1..5] und es soll dann die komplette folge der Nummer ausgeben, also [1,2,3,4,5]. Was macht aber die Funktion fachelp???. Bin dankbar fuer jeden Hilfe!! fac2 :: Int -> Int fac2 n = fachelp [1..n] fachelp :: [Int] -> Int fachelp [] = 1 fachelp (x:xs) = x * fachelp xs |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo, [1..5] und [1,2,3,4,5] sind in Haskell gleich, das erste ist nur eine einfachere/kürzere Schreibweise. fachelp unterscheidet, ob eine leere Liste vorliegt [], dann wird 1 zurückgegeben, oder ob die Liste aus einem Element x und einer Restliste xs besteht. In diesem Fall wird x mit dem rekursiv berechneten Resultat von fachelp auf der Restliste xs multipliziert. Es werden also alle Elemente einer Liste miteinander multipliziert. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||