【发布时间】:2017-08-21 23:45:33
【问题描述】:
我正在尝试用 F# 编写泰勒级数。 看看我的代码
let rec iter a b f i =
if a > b then i;
else f a (iter (a+1) b f i)
let sum a b = iter a b (+) 0 // from 0
// e^x = 1 + x + (x^2)/2 + ... (x^n)/n! + ...
let fact n = iter 1 n (*) 1 // factorial
let pow x n = iter 1 n (fun n acc -> acc * x) 1
let exp x =
iter 0 x
(fun n acc ->
acc + (pow x n) / float (fact n)) 0
在最后一行我尝试将 int fact n 转换为浮动,但似乎我错了,因为此代码不可编译:(
我在做正确的算法吗?
我可以调用我的代码功能优先吗?
【问题讨论】:
-
当您问“为什么这段代码不起作用?”时,让我再说一下 Fyodor 关于提供 exact 错误消息的评论。或类似的问题。它消除了编写答案时的大量猜测,并确保您更有可能获得问题的好答案,因为更多的人无需猜测就能猜出答案。
-
@rmunn 感谢您的评论!下次我会提到确切的错误信息,我的错。
标签: f# functional-programming taylor-series