刚开始学习F#和我试图生成和评估泰勒系列的第10项è.我最初编写此代码来计算它:
let fact n = function
| 0 -> 1
| _ -> [1 .. n] |> List.reduce (*)
let taylor e =
let term n = (e ** n) / (fact n)
[1 .. 10]
|> List.map (term)
|> List.reduce (+)
Run Code Online (Sandbox Code Playgroud)
这导致错误,因为**操作员不工作int.显然,我需要将所有内容都投射到float一起才能使一切正常工作.所以:
let fact (n: float) = function
| 0.0 -> 1.0
| _ -> [1.0 .. n] |> List.reduce (*)
let taylor (e: float) =
let term (n: float) = …Run Code Online (Sandbox Code Playgroud)