Types f中的“seq
我是F python程序员的新手,对我遇到的一个错误感到非常困惑。我有一个练习,从Nilakantha级数pi估计计算一个无限序列。这是我目前的代码:Types f中的“seq,types,f#,Types,F#,我是F python程序员的新手,对我遇到的一个错误感到非常困惑。我有一个练习,从Nilakantha级数pi估计计算一个无限序列。这是我目前的代码: let piSeq x = let sum = 0m let bool = true let calculation x = (4m / (2m*x*(2m*x+1m)*(2m*x+2m))) seq { for b in 0..x do let x
let piSeq x =
let sum = 0m
let bool = true
let calculation x = (4m / (2m*x*(2m*x+1m)*(2m*x+2m)))
seq {
for b in 0..x do
let x = x |> decimal
if b=0 then let sum = sum + 3m
yield sum
else if bool = true
then let sum = sum + (calculation x)
let bool = false
yield sum
else let sum = sum - (calculation x)
let bool = true
yield sum
}
Seq.iter (printf "%A ") (Seq.take 1000 piSeq)
此代码给了我以下错误:
error FS0001: The type 'int -> seq<int>' is not compatible with the type 'seq<'a>'
我的问题是,“seqseq”是什么 Seq,take需要一个int和一个序列。你给出的是一个int,函数piSeq是一个需要int的函数。所以它应该是Seq。取1000,piSeq提供了一些。