0
我有一個函數:柯里函數取消OCaml中的多態性?
let rec loop size elem =
if size <= 0 then []
else elem::(loop (size - 1) elem);;
如果我在UTOP鍵入我預計類型int -> 'a -> 'a list = <fun>
,但是如果我做一個功能let loop_3 = loop 3
的loop_3
類型變得'_a -> '_a list = <fun>
。關於我的主要區別在於它將函數從多態函數(輸入爲'a
)更改爲弱多態函數(輸入類型爲'_a
)。這是爲什麼發生?有什麼辦法可以解決這個問題嗎?