2016-01-11 28 views

回答

4

所有綁定是automatic generalization的主題。

由於seq<'T>是一個接口(用於IEnumrable的別名),推斷出的類型爲myOtherFn
val myOtherFn : ('_a -> unit) when '_a :> seq<obj>
,其是通用的,但,myOtherFn不是函數聲明(讀值限制在鏈路部以上),所以自動泛化不能推斷這與val myOtherFn : seq<obj> -> unit相同。

要強制自動綜合,你可以明確的參數添加到myOtherFn
let myOtherFn args = myFn "" args

+2

這是原因,但相關的差異不是以次是一個接口,而該名單是密封的。例如使用'obj ResizeArray'代替列表,並且它也會給出值限制錯誤。 – Vandroiy

+0

感謝您的糾正,您絕對正確。 –

相關問題