OCaml Trace:明星是什么?

时间:2013-02-06 14:34:38

标签: debugging ocaml

在OCaml中使用#trace跟踪函数时,输出可能包含以下内容:

subRec --> <fun>
subRec* <-- "_1"
subRec* --> <fun>
subRec** <-- Var "_1"

星星/ splats是什么意思?

1 个答案:

答案 0 :(得分:3)

这用于将部分应用程序的结果标记为已经过化解 功能。 let f x y = ...相当于let f x = fun y -> ...: 应用x参数将返回一个新函数,而该函数又需要 要计算的y参数。第一个函数将被追踪为f, 第二个(由f 1返回)标记为f*

# let f x y = x + y;;
# #trace f;;
# f 1 2;;
f <-- 1
f --> <fun>
f* <-- 2
f* --> 3
- : int = 3
# let g = f 1;;
f <-- 1
f --> <fun>
val g : int -> int = <fun>
# g 2;;
f* <-- 2
f* --> 3
- : int = 3