我很困惑如何将函数标记为泛型而没有类似的显式类型声明 ('a -> 'a)
let add a b = a + b
Run Code Online (Sandbox Code Playgroud)
这给了我们
val add : a:int -> b:int -> int
Run Code Online (Sandbox Code Playgroud)
但是我们可以立即打电话
add "Hello " "World!"
Run Code Online (Sandbox Code Playgroud)
现在add的值是
val add : a:string -> b:string -> string
val it : string = "Hello World!"
Run Code Online (Sandbox Code Playgroud)
如果我们再打电话
add 2 3 // then we get
error: This expression was expected to have type string but here has type int
Run Code Online (Sandbox Code Playgroud)
如何确保函数适用于所有已(+)定义函数的类型