Types F#什么类型的(+;)

Types F#什么类型的(+;),types,f#,Types,F#,我是新来的。我试图找到少数值的类型,如(+),pown等。 虽然我模糊地理解(int->int->int)的意思是“一个取整数的函数,它返回一个取整数并返回整数的函数。” 但是,我不明白英语中的意思 (+);; val it : (int -> int -> int) = <fun:it@1> (+);; val it:(int->int->int)= 任何有助于理解该概念的帮助都将不胜感激。我猜您正在使用F#Interactive(fsi)来计算表达式。在这种情

我是新来的。我试图找到少数值的类型,如(+),pown等。 虽然我模糊地理解(int->int->int)的意思是“一个取整数的函数,它返回一个取整数并返回整数的函数。”

但是,我不明白英语中
的意思

(+);;  
val it : (int -> int -> int) = <fun:it@1>
(+);;
val it:(int->int->int)=
任何有助于理解该概念的帮助都将不胜感激。

我猜您正在使用F#Interactive(
fsi
)来计算表达式。在这种情况下,您应该这样读取程序的输出:

  • val-it
    =>表示与上一个计算表达式的绑定
  • :(int->int->int)
    =>冒号后面是上次计算的表达式的类型
  • =
    =>等号后面是上一个计算表达式的值
因此,您可以看到,您已经回答了有关
(+)
类型的问题。您询问的部分只是函数的值,
fsi
在此无法显示任何有意义的内容。如果您尝试定义自己的函数,您将得到类似的结果:
让fx=x+1;;f、 )产生
valit:(int->int)=


现在,要完全回答关于的问题,这有点棘手,因为它是一个重载运算符,需要更高级的知识才能理解。基本上,如果存在一个名为
(+)
的静态成员的类,其输入类型为
^T1
^T2
,那么您可以对
^T1
^T2

类型的值使用
(+)
运算符。下面是对
(+)这种棘手类型的解释
谢谢您的解释。我来自命令式背景,我倾向于将概念与C/C++等价物进行比较。这些语言允许传递函数指针作为回调的参数。不太确定,但是,f函数中的函数值可以被认为与C/C++的函数指针有点类似……我想这样做不会有什么害处,但是实际上函数值是作为实例传递的。