我正在尝试在 OCaml 中实现一个通用计时器函数,它将作为输入一个任意数量的函数并返回类型'r并返回一个函数:
- 输入参数的数量和类型相同,并且
- 返回类型
float * 'r
,其中浮点数将是函数中花费的时间的度量(例如由 报告Sys.time()
)
问题是我无法以它可以处理任何数量的功能的方式实现它。例如以下代码:
让计时器 f = 让 timerf xy = 让 t0 = Sys.time () 在让结果 = fxy 在 let diff = Sys.time() -。t0 在差异中,结果 在定时器
仅适用于输入 arity 2 的函数。对我来说,如何概括它以处理任何 arity 的函数并不明显。我希望部分功能应用程序能以某种方式神奇地解决这个难题,但我无法让它工作。