我是F#的新手。我尝试找到几个值的类型,如(+),pown等。 虽然我模糊地理解(int - > int - > int)意味着“一个带整数的函数,它返回一个取整数并返回一个整数的函数。”
但是,我不理解
中<fun:it@1>
的含义
(+);;
val it : (int -> int -> int) = <fun:it@1>
理解这个概念的任何帮助都将受到赞赏。
答案 0 :(得分:4)
我猜你正在使用F#Interactive(fsi
)来评估表达式。在这种情况下,您应该如何阅读程序的输出:
val it
=&gt;表示与最后评估的表达式的绑定: (int -> int -> int)
=&gt;冒号后面是最后一个评估表达式的类型= <fun:it@1>
=&gt;等号后面是最后一次评估表达式的值因此,您可以看到您已经回答了有关( + )
类型的问题。您要问的部分只是函数的值,fsi
无法在此处显示任何有意义的内容。如果您尝试定义自己的函数,则会得到类似的结果:let f x = x + 1;; f;;
会产生val it : (int -> int) = <fun:it@4>
。
现在,要完全回答有关type of ( + )
的问题,这有点棘手,因为它是一个重载的运算符,需要更高级的知识才能理解。基本上,如果存在一个具有名为( + )
的静态成员且具有类型^T1
和^T2
的输入的类,则可以对{{1}类型的值使用( + )
运算符}和^T1
。