Учитывая приведенную ниже анонимную функцию, что означает ‹fun:clo@1› в подписи функции?

Что означает «fun:clo@1» в этой сигнатуре анонимной функции F#?

(fun x-> x+2);;
val it : x:int -> int = <fun:clo@1>

Я понимаю, что делает анонимная функция, и я понимаю остальную часть подписи, и я искал ответ, но еще не понял, что означает «»?


person greg    schedule 22.09.2017    source источник


Ответы (1)


Эта часть, по сути, представляет собой автоматически сгенерированное имя функции.

Часть fun потому что это функция.

clo в некоторых случаях будет заменен версией содержащей его функции, если лямбда находится внутри другой функции.

@1 потому что это первая лямбда в функции.

Все это на самом деле является деталями реализации и, вероятно, может меняться между выпусками.

person John Palmer    schedule 22.09.2017