カリースタイルポリモーフィックタイプのシステムで期待されているように、以下はうまくいきます。これは「、F#ポリモルフィックタイプ
let f x = x
printfn "%A" (f 2)
printfn "%A" (f 3.4)
しかし、我々はもう少し複雑な何かをしようとすると、それは、3行目の失敗: - 恒等関数は「>」、実際には各タイプごとに1つの関数の無限の家族です式はint型を持つことが期待されるが、ここで「float型を持つました:(。しかし、予想通り二行目は、三行目の作業を行いコメントアウト)
let f x = string x
printfn "%A" (f 2)
printfn "%A" (f 3.4)
を
をA先験的、私は種類を期待しているだろう推論はいずれかの動作をするカレットスタイルは、不特定の型が事実上一般的な、または他のバージョンの関数をロックダウンすることができますが、私が見る限り、最初のケースでは前者を行い、後者のケースでは後者を行います。私はちょうど私がピックアップしていない動作の背後にいくつかの論理があると思います。私は何が欠けていますか?
これは、 'let inline f x = string x'は、2番目の例を最初のように振る舞わせることを意味します。 – kvb