syntax - Small difference in types -


i have 3 functions ought equal:

let add1 x = x + 1 let add2 = (+) 1 let add3 = (fun x -> x + 1)  

why types of these methods differ?
add1 , add3 int -> int, add2 (int -> int). work expected, curious why fsi presents them differently?

this typically unimportant distinction, if you're curious, see arity conformance values section of f# spec.

my quick summary (int -> int) superset of int -> int. since add1 , add3 syntactic functions, inferred have more specific type int -> int, while add2 function value , therefore inferred have type (int -> int) (and cannot treated int -> int).


Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -