Simple integration of module functionality

This commit is contained in:
Ozzie Gooen 2022-07-07 18:30:56 -07:00
parent c866cc812a
commit 7afae96cf4
3 changed files with 14 additions and 12 deletions

View File

@ -414,18 +414,18 @@ module Registry = {
->E.A.O.concatSomes
->E.A.uniq
let makeModules = (t: registry) => {
let makeModules = (prevBindings: Reducer_Module.t, t: registry): Reducer_Module.t => {
let nameSpaces = allNamespaces(t)
nameSpaces->E.A2.fmap(nameSpace => {
let nameSpaceBindings = nameSpaces->E.A2.fmap(nameSpace => {
let definitions = t->definitions->E.A2.filter(d => d.nameSpace === Some(nameSpace))
// E.A.reduce(definitions, Reducer_Module.emptyStdLib, (acc, d) => {
// let name = d.name
// let definition = FnDefinition.toLambda(d)
// let foo = Reducer_Module.defineFunction("Fhi", definition)
// })
// let module = Module.make(nameSpace, functions)
// module
let newModule = E.A.reduce(definitions, Reducer_Module.emptyStdLib, (acc, d) => {
acc->Reducer_Module.defineFunction(d.name, FnDefinition.toFfiFn(d))
})
(nameSpace, newModule)
})
E.A.reduce(nameSpaceBindings, prevBindings, (acc, (name, fn)) =>
acc->Reducer_Module.defineModule(name, fn)
)
}
}

View File

@ -72,7 +72,7 @@ let registry = [
~requiresNamespace=true,
~name="makeDiscrete",
~inputs=[FRTypeArray(FRTypeRecord([("x", FRTypeNumeric), ("y", FRTypeNumeric)]))],
~run=(inputs, _) => inputsTodist(inputs, r => Continuous(Continuous.make(r))),
~run=(inputs, _) => inputsTodist(inputs, r => Discrete(Discrete.make(r))),
(),
),
],

View File

@ -20,4 +20,6 @@ let mathBindings: Bindings.t =
->Bindings.fromArray
let makeBindings = (previousBindings: Bindings.t): Bindings.t =>
previousBindings->Bindings.defineModule("Math", mathBindings)
previousBindings
->Bindings.defineModule("Math", mathBindings)
->FunctionRegistry_Core.Registry.makeModules(FunctionRegistry_Library.registry)