【发布时间】:2017-09-22 22:23:35
【问题描述】:
在这个 F# 匿名函数签名中,“fun:clo@1”是什么意思?
(fun x-> x+2);;
val it : x:int -> int = <fun:clo@1>
我了解匿名函数在做什么,我了解签名的其余部分,我已经四处寻找答案,但还没有弄清楚“”是什么意思?
【问题讨论】:
在这个 F# 匿名函数签名中,“fun:clo@1”是什么意思?
(fun x-> x+2);;
val it : x:int -> int = <fun:clo@1>
我了解匿名函数在做什么,我了解签名的其余部分,我已经四处寻找答案,但还没有弄清楚“”是什么意思?
【问题讨论】:
这部分本质上是函数的自动生成名称。
fun 部分是因为它是一个函数。
如果 lambda 在另一个函数中,clo 在某些情况下会被包含函数的版本替换。
@1 是因为它是函数中的第一个 lambda。
不过,所有这些实际上都是一个实现细节,并且可能会在不同版本之间发生变化
【讨论】: