在Haskell中用两个参数函数求和

时间:2014-01-07 01:44:48

标签: function haskell sum combinations

我在Haskell中有一个函数,它有两个参数,我想计算这个函数的总和。

module Main where

fact 0 = 1
fact n = n * fact (n - 1)

combination n p = fact n / fact (n - p)

combSum p = combination p p / foldr1 (\p-> \x -> combination p x) [p,(p-1)..0]

prob p = combination p p / combSum p

这似乎不起作用。 combSum函数。我该怎么写这个函数?

只是更正功能...抱歉......

x必须在p到0之间变化。

1 个答案:

答案 0 :(得分:0)

首先,

combination p p 

与以下内容相同:

fact p

接下来,我不完全确定你的combSum做了什么。特别是分母。 foldr采用函数,初始值和列表。我没看到你的初始价值。你只是想总结一系列价值观吗?喜欢

fact 0 = 1
fact n = n * fact (n - 1)
combination n p = fact n / fact (n - p)
combSum p = sum $ map (\x -> combination p x) [p, p-1 .. 0]
prob p = fact p / combSum p

不确定这是不是你想要的......