【发布时间】:2011-11-24 21:33:48
【问题描述】:
我是 OCaml 菜鸟。我试图弄清楚如何处理传递给函数的比较运算符。
我的函数只是尝试传入一个比较运算符(=、 等)和一个 int。
let myFunction comparison x =
if (x (comparison) 10) then
10
else
x;;
我希望这段代码的计算结果为(如果传入了“=”):
if (x = 10) then
10
else
x;;
但是,这不起作用。特别是,它认为 x 是一个布尔值,如以下错误消息所示:
This expression has type 'a -> int -> bool
but an expression was expected of type int
我该如何做我想做的事?
关于一个附带问题,我怎么能自己解决这个问题,这样我就不必依赖论坛的外部帮助了?有什么好的资源?
【问题讨论】:
-
另请注意,一旦将其包含在变量中,就不能将它们用作内联运算符。
标签: function functional-programming ocaml comparator