jooc を使用してd3-forceのサブセットをラップするのに問題があります。ライブラリはオブジェクトのプロパティを使用せず、代わりに融合された getter-setter 関数を実装します。
simulation.force("x", d3.forceX()) // setter
simulation.force("x") // getter
OCaml で同じ種類のポリモーフィズムをエミュレートする方法を見つけたいと思います。ここに私が現在持っているものがあります
module Force = struct
class type force = object
(* not important *)
end
let x (): force Js.t = Js.Unsafe.meth_call __d3 "forceX" [||]
class type simulation = object
method force : string -> #force Js.t -> unit Js.meth
end
let simulation nodes: simulation Js.t =
Js.Unsafe.(meth_call __d3 "forceSimulation" [|inject nodes|])
end
そして、これが私が求めているものです
let s = Force.simulation nodes in begin
s##force "x" (Force.x ())
s##force "x" (* wishful thinking *)
end