为何在utop中已命名的OCaml函数仍显示为匿名?
关于OCaml中utop显示函数名称的疑问解答
你定义函数时看到的val a : int -> int = <fun>,是utop在确认你绑定了一个名为a的变量,它的类型是int -> int,对应的值是一个函数。
当你输入a;;回车后,utop显示的- : int -> int = <fun>里的-,只是用来标记「这是当前求值结果」的符号,和匿名完全无关。它的作用是告诉你刚才求值的表达式结果类型是int -> int,值是一个函数——utop不会在这个结果行重复变量名,毕竟你自己知道输入的是a。
总结一下:
- 定义变量时的
val a是在反馈绑定的名称与类型信息 - 直接求值变量时的
-是结果标识,不是匿名标记
内容的提问来源于stack exchange,提问作者smwikipedia
相关产品推荐
相关产品推荐

