带有匿名函数的函数的行为
Behavior of function with anonymous function in it
作为 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
如果在函数调用时没有为输入参数 g 赋值,解释器会使用 unit
作为数据类型吗?如果是这样,为什么这发生在 g 而不是匿名函数的输入参数上?
根据@molbdnilo test 1;
只会将函数测试 (fn x=>x
) 的值绑定到 it
。所以 1 在第一次调用时被分配给 g
。使用某些参数调用 it
将执行 fn x=>x
部分。
作为 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
如果在函数调用时没有为输入参数 g 赋值,解释器会使用 unit
作为数据类型吗?如果是这样,为什么这发生在 g 而不是匿名函数的输入参数上?
根据@molbdnilo test 1;
只会将函数测试 (fn x=>x
) 的值绑定到 it
。所以 1 在第一次调用时被分配给 g
。使用某些参数调用 it
将执行 fn x=>x
部分。