このコードは次の警告を生成します
module TimeSeries
open System
type TimedValue<'T> = { ts : DateTime; value: 'T}
type TimeSerie<'T> = TimedValue<'T> seq
let t : TimedValue<'double> = { ts = DateTime.Today; value=5}
警告:
この構成により、コードは型注釈で示されるよりも一般的ではなくなります。型変数「double」は「int」型に制限されています。
私はF#にかなり慣れていません.5はintとして解釈され、どういうわけかF#はdoubleを要求したがintになると言っています.
これに置き換えようと5
すると5.
、まだフロート型に制約されていることがわかりました。
どうにかして二重にキャストするか、宣言部分: TimedValue<'double>
を削除して F# に型を処理させる必要がありますか?