私は非常に初心者の 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 にマクロ システムがあるとは思えません。他に何ができますか?