这是代码:
let rec fact n =
if n<=1 then 1.0
else float n*fact(n-1)
let rec step x n =
if n=0 then 1.0
else x*stepx(n-1)
let minus n =
if n%2=0 then 1
else -1
let otn x n =
minus n * stepx(2*n)/fact(2*n)
minus n*(fun k -> step x k/fact k)(2*n)
let mycos x = sum x 1.0E-6
let rec sum x n eps
let z = otn x n
if abs z < eps then z
else z + sum x(n+1) eps
我不知道为什么它不起作用,请帮助

这里的第一个问题是格式。缩进在 F# 中很重要,请注意 IDE 和编译器消息。
第二个问题是声明的顺序。默认情况下,您不能在定义之前调用函数。您的代码
mycos包含对以下函数的调用sum。错别字 - 缺少字符
=、缺少参数等。否则,一切都井井有条,除了准确性可以再多一点,我给出更正的代码和沙箱链接以供确认:
https://repl.it/repls/OutlyingAttractiveCron