www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

milanj86

Gepostet:
24.10.2010 21:10

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    
 
Siracusa

Gepostet:
26.10.2010 22:01

   
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