我是一个非常新手的OCaml程序员,所以请原谅我,如果这是一个愚蠢的/明显的问题。有很多吸收,我可能在文档中错过了这一点。可以记录OCaml中的字段更新是否可以推广?
我的代码基础,正在开始看起来像这样:
let update_x p x =
add_delta p;
p.x <- x;
refresh p
let update_y p y =
add_delta p;
p.y <- y;
refresh p
let update_z p z =
add_delta p;
p.z <- z;
refresh p
的复制被开始的错误我,因为我想写的是这样的:
let update_scalar p scalar value =
add_delta p;
magic_reflection (p, scalar) <- value;
refresh p
这我更新x的方式我可以简单地打电话:
update_scalar p 'x' value
这叫出“宏!”对我来说,但我不相信OCaml有一个宏观系统。我还可以做些什么?
尼特:艇员选拔`val`作为标识符名称令人困惑,'val'被用作模块类型的绑定。 – Yttrill 2011-01-22 14:41:29
够公平的。改变了它。 – 2011-01-22 20:17:28