24 lines
727 B
Plaintext
24 lines
727 B
Plaintext
module Bindings = Reducer_Category_Bindings
|
|
module Module = Reducer_Category_Module
|
|
|
|
let availableNumbers: array<(string, float)> = [
|
|
("pi", Js.Math._PI),
|
|
("e", Js.Math._E),
|
|
("ln2", Js.Math._LN2),
|
|
("ln10", Js.Math._LN10),
|
|
("log2e", Js.Math._LOG2E),
|
|
("log10e", Js.Math._LOG10E),
|
|
("sqrt2", Js.Math._SQRT2),
|
|
("sqrt1_2", Js.Math._SQRT1_2),
|
|
("phi", 1.618033988749895),
|
|
("tau", 6.283185307179586),
|
|
]
|
|
|
|
let mathBindings: Bindings.ExpressionT.bindings =
|
|
availableNumbers
|
|
->E.A2.fmap(((name, v)) => (name, ReducerInterface_ExpressionValue.EvNumber(v)))
|
|
->Belt.Map.String.fromArray
|
|
|
|
let makeBindings = (previousBindings: Bindings.t): Bindings.t =>
|
|
previousBindings->Bindings.defineModule("Math", mathBindings)
|