作为SML的新手,使用SML NJ,我认识到了函数的这种行为:
- fun test g= fn x=>x;
val test : 'a -> 'b -> 'b = _fn
- test 1 2;
val it : int = 2
- test 1;
val it : '1 -> '1 = _fn
是这样的,unit
如果在函数调用时没有给定值,则解释器将其用作输入参数g的数据类型?如果是这样,为什么这会发生在g而不是匿名函数的输入参数上?
根据@molbdnilotest 1;
只能将函数test(fn x=>x
)的值绑定到it
。因此,g
在第一次调用时将1分配给。it
带有某些参数的调用将执行该fn x=>x
部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句