我收到以下错误:
错误 2 值限制。该值
'gbmLikelihood'
已被推断为具有泛型类型val gbmLikelihood : (float -> '_a -> float [] -> float) when '_a :> seq<float>
将参数设为'gbmLikelihood'
显式,或者,如果您不打算使其成为泛型,请添加类型注释。
而这种类型正是我想要的。我必须做些什么才能让它工作,为什么它在没有干预的情况下不能工作?
编辑:
错误来自这个文件(它很短,所以我粘贴了整个文件):
module Likelihood
open System
let likelihood getDrift getVol dt data parameters =
let m = getDrift data parameters
let s = getVol data parameters
let N = float (Seq.length data)
let sqrt_dt = Math.Sqrt dt
let constant = -0.5*Math.Log(2.0*Math.PI*dt)*N
let normalizedResidue observation = (observation - (m - 0.5*s*s)*dt)/(s*sqrt_dt)
let residueSquared observation =
let r = normalizedResidue observation in r*r
let logStdDev = Math.Log s
constant - logStdDev*N - 0.5* (data |> Seq.sumBy residueSquared)
let gbmLikelihood = likelihood (fun data p -> Array.get p 0) (fun datac p -> Array.get p 1)