Hallo, die jungen Damen! 
Ich habe mir die Produktformel der Binominalkoeffizienten angeschaut und wollte diese dann in Haskell implementieren.
Soweit so gut, bis auf das Problem mit der Berechnung und den Rekursionsfehler, den ich bekomme.
So schaut der Code bisher aus:
Und die Rekursive Variante:
Kann mir jemand erklären, wie ich die Formel "r = r * (n + 1 - i) `div` i" in den Platzhalter "Formel hier" eintragen kann?
Ich muss ja irgendwie r "zwischenspeichern", damit mit dem ergebnis weitergerechnet werden kann.
Außerdem würde ich gerne den Stack overflow beheben, kann mir da jemand weiterhelfen? Google wollte mir nichts passendes ausspucken.
Gruß
Felix

Ich habe mir die Produktformel der Binominalkoeffizienten angeschaut und wollte diese dann in Haskell implementieren.
Soweit so gut, bis auf das Problem mit der Berechnung und den Rekursionsfehler, den ich bekomme.
So schaut der Code bisher aus:
Code:
binominal :: (Int,Int) -> Int
binominal (n,k) = foldl (*) 1 [ "Formel hier" | i <- [1..k] ]
Code:
-- Stack space overflow: current size 8388608 bytes.
-- Use `+RTS -Ksize' to increase it.
binominal :: (Int,Int) -> Int -> Int -> Int
binominal (n,k) i r
| i == k = r
| otherwise = binominal (n,k) r (i+1)
where
r = r * (n + 1 - i) `div` i
Ich muss ja irgendwie r "zwischenspeichern", damit mit dem ergebnis weitergerechnet werden kann.
Außerdem würde ich gerne den Stack overflow beheben, kann mir da jemand weiterhelfen? Google wollte mir nichts passendes ausspucken.
Gruß
Felix