Simple reformatting, got RequiresNamespace to work
This commit is contained in:
parent
0c032e710c
commit
d88fb95767
|
@ -18,11 +18,11 @@ module FooImplementation = {
|
|||
let fn = Function.make(
|
||||
~name="add",
|
||||
~nameSpace="Foo",
|
||||
~requiresNamespace=false,
|
||||
~examples=["Foo.add(1, 2)", "Foo.add(1, 2, 3)"],
|
||||
~output=EvtNumber,
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=false,
|
||||
~name="add",
|
||||
~inputs=[FRTypeNumber, FRTypeNumber],
|
||||
~run=(_, inputs, _) =>
|
||||
|
@ -33,7 +33,6 @@ module FooImplementation = {
|
|||
(),
|
||||
),
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="add",
|
||||
~inputs=[FRTypeNumber, FRTypeNumber, FRTypeNumber],
|
||||
~run=(_, inputs, _) =>
|
||||
|
|
|
@ -41,7 +41,6 @@ and frValueDictParam = (string, frValue)
|
|||
and frValueDistOrNumber = FRValueNumber(float) | FRValueDist(DistributionTypes.genericDist)
|
||||
|
||||
type fnDefinition = {
|
||||
requiresNamespace: bool,
|
||||
name: string,
|
||||
inputs: array<frType>,
|
||||
run: (
|
||||
|
@ -54,6 +53,7 @@ type fnDefinition = {
|
|||
type function = {
|
||||
name: string,
|
||||
definitions: array<fnDefinition>,
|
||||
requiresNamespace: bool,
|
||||
nameSpace: string,
|
||||
output: option<internalExpressionValueType>,
|
||||
examples: array<string>,
|
||||
|
@ -352,9 +352,8 @@ module FnDefinition = {
|
|||
let toLambda = (t: t) =>
|
||||
Reducer_Module.convertOptionToFfiFn(t.name, toFfiFn(t))->Reducer_Module.eLambdaFFIValue
|
||||
|
||||
let make = (~requiresNamespace=true, ~name, ~inputs, ~run, ()): t => {
|
||||
let make = (~name, ~inputs, ~run, ()): t => {
|
||||
name: name,
|
||||
requiresNamespace: requiresNamespace,
|
||||
inputs: inputs,
|
||||
run: run,
|
||||
}
|
||||
|
@ -374,6 +373,7 @@ module Function = {
|
|||
let make = (
|
||||
~name,
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~definitions,
|
||||
~examples=?,
|
||||
~output=?,
|
||||
|
@ -387,6 +387,7 @@ module Function = {
|
|||
output: output,
|
||||
examples: examples |> E.O.default([]),
|
||||
isExperimental: isExperimental,
|
||||
requiresNamespace: requiresNamespace,
|
||||
description: description,
|
||||
}
|
||||
|
||||
|
@ -427,6 +428,9 @@ module NameSpace = {
|
|||
|
||||
module Registry = {
|
||||
let toJson = (r: registry) => r->E.A2.fmap(Function.toJson)
|
||||
|
||||
let exportedSubset = (r: registry): registry => r |> E.A.filter(r => !r.requiresNamespace)
|
||||
|
||||
let definitionsWithFunctions = (r: registry) =>
|
||||
r->E.A2.fmap(fn => fn.definitions->E.A2.fmap(def => (def, fn)))->E.A.concatMany
|
||||
|
||||
|
@ -442,7 +446,6 @@ module Registry = {
|
|||
~env: GenericDist.env,
|
||||
) => {
|
||||
let matchToDef = m => Matcher.Registry.matchToDef(registry, m)
|
||||
//Js.log(toSimple(registry))
|
||||
let showNameMatchDefinitions = matches => {
|
||||
let defs =
|
||||
matches
|
||||
|
@ -460,17 +463,16 @@ module Registry = {
|
|||
}
|
||||
}
|
||||
|
||||
//todo: get namespace from project.
|
||||
let allNamespaces = (t: registry) => t->E.A2.fmap(r => r.nameSpace)->E.A.uniq
|
||||
|
||||
let makeModules = (prevBindings: Reducer_Module.t, t: registry): Reducer_Module.t => {
|
||||
let nameSpaces = allNamespaces(t)
|
||||
let nameSpaceBindings = nameSpaces->E.A2.fmap(nameSpace => {
|
||||
let foo: NameSpace.t = {
|
||||
let namespaceModule: NameSpace.t = {
|
||||
name: nameSpace,
|
||||
functions: t->E.A2.filter(r => r.nameSpace == nameSpace),
|
||||
}
|
||||
(nameSpace, NameSpace.toModule(foo))
|
||||
(nameSpace, NameSpace.toModule(namespaceModule))
|
||||
})
|
||||
E.A.reduce(nameSpaceBindings, prevBindings, (acc, (name, fn)) =>
|
||||
acc->Reducer_Module.defineModule(name, fn)
|
||||
|
|
|
@ -5,5 +5,5 @@ let registry = Belt.Array.concatMany([
|
|||
FR_List.library,
|
||||
FR_Number.library,
|
||||
FR_Pointset.library,
|
||||
FR_Scoring.library
|
||||
FR_Scoring.library,
|
||||
])
|
||||
|
|
|
@ -45,11 +45,11 @@ let library = [
|
|||
Function.make(
|
||||
~name="merge",
|
||||
~nameSpace,
|
||||
~requiresNamespace=true,
|
||||
~output=EvtRecord,
|
||||
~examples=[`Dict.merge({a: 1, b: 2}, {c: 3, d: 4})`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="merge",
|
||||
~inputs=[FRTypeDict(FRTypeAny), FRTypeDict(FRTypeAny)],
|
||||
~run=(inputs, _, _) => {
|
||||
|
@ -67,11 +67,11 @@ let library = [
|
|||
Function.make(
|
||||
~name="mergeMany",
|
||||
~nameSpace,
|
||||
~requiresNamespace=true,
|
||||
~output=EvtRecord,
|
||||
~examples=[`Dict.mergeMany([{a: 1, b: 2}, {c: 3, d: 4}])`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="mergeMany",
|
||||
~inputs=[FRTypeArray(FRTypeDict(FRTypeAny))],
|
||||
~run=(_, inputs, _) =>
|
||||
|
@ -89,11 +89,11 @@ let library = [
|
|||
Function.make(
|
||||
~name="keys",
|
||||
~nameSpace,
|
||||
~requiresNamespace=true,
|
||||
~output=EvtArray,
|
||||
~examples=[`Dict.keys({a: 1, b: 2})`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="keys",
|
||||
~inputs=[FRTypeDict(FRTypeAny)],
|
||||
~run=(inputs, _, _) =>
|
||||
|
@ -109,11 +109,11 @@ let library = [
|
|||
Function.make(
|
||||
~name="values",
|
||||
~nameSpace,
|
||||
~requiresNamespace=true,
|
||||
~output=EvtArray,
|
||||
~examples=[`Dict.values({a: 1, b: 2})`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="values",
|
||||
~inputs=[FRTypeDict(FRTypeAny)],
|
||||
~run=(inputs, _, _) =>
|
||||
|
@ -129,11 +129,11 @@ let library = [
|
|||
Function.make(
|
||||
~name="toList",
|
||||
~nameSpace,
|
||||
~requiresNamespace=true,
|
||||
~output=EvtArray,
|
||||
~examples=[`Dict.toList({a: 1, b: 2})`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="toList",
|
||||
~inputs=[FRTypeDict(FRTypeAny)],
|
||||
~run=(inputs, _, _) =>
|
||||
|
@ -149,11 +149,11 @@ let library = [
|
|||
Function.make(
|
||||
~name="fromList",
|
||||
~nameSpace,
|
||||
~requiresNamespace=true,
|
||||
~output=EvtRecord,
|
||||
~examples=[`Dict.fromList({a: 1, b: 2})`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="fromList",
|
||||
~inputs=[FRTypeArray(FRTypeArray(FRTypeAny))],
|
||||
~run=(inputs, _, _) =>
|
||||
|
|
|
@ -5,9 +5,10 @@ let twoArgs = E.Tuple2.toFnCall
|
|||
module DistributionCreation = {
|
||||
let nameSpace = "Dist"
|
||||
let output = ReducerInterface_InternalExpressionValue.EvtDistribution
|
||||
let requiresNamespace = false
|
||||
|
||||
let fnMake = (~name, ~examples, ~definitions) => {
|
||||
Function.make(~name, ~nameSpace, ~output, ~examples, ~definitions, ())
|
||||
Function.make(~name, ~nameSpace, ~output, ~examples, ~definitions, ~requiresNamespace, ())
|
||||
}
|
||||
|
||||
module TwoArgDist = {
|
||||
|
@ -18,7 +19,6 @@ module DistributionCreation = {
|
|||
|
||||
let make = (name, fn) => {
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=false,
|
||||
~name,
|
||||
~inputs=[FRTypeDistOrNumber, FRTypeDistOrNumber],
|
||||
~run=(_, inputs, env) => inputs->Prepare.ToValueTuple.twoDistOrNumber->process(~fn, ~env),
|
||||
|
@ -28,7 +28,6 @@ module DistributionCreation = {
|
|||
|
||||
let makeRecordP5P95 = (name, fn) => {
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=false,
|
||||
~name,
|
||||
~inputs=[FRTypeRecord([("p5", FRTypeDistOrNumber), ("p95", FRTypeDistOrNumber)])],
|
||||
~run=(_, inputs, env) =>
|
||||
|
@ -40,7 +39,6 @@ module DistributionCreation = {
|
|||
let makeRecordMeanStdev = (name, fn) => {
|
||||
FnDefinition.make(
|
||||
~name,
|
||||
~requiresNamespace=false,
|
||||
~inputs=[FRTypeRecord([("mean", FRTypeDistOrNumber), ("stdev", FRTypeDistOrNumber)])],
|
||||
~run=(_, inputs, env) =>
|
||||
inputs->Prepare.ToValueTuple.Record.twoDistOrNumber->process(~fn, ~env),
|
||||
|
@ -57,7 +55,6 @@ module DistributionCreation = {
|
|||
|
||||
let make = (name, fn) =>
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=false,
|
||||
~name,
|
||||
~inputs=[FRTypeDistOrNumber],
|
||||
~run=(_, inputs, env) => inputs->Prepare.ToValueTuple.oneDistOrNumber->process(~fn, ~env),
|
||||
|
|
|
@ -34,6 +34,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="declare",
|
||||
~nameSpace,
|
||||
~requiresNamespace=true,
|
||||
~description="Adds metadata to a function of the input ranges. Works now for numeric and date inputs. This is useful when making predictions. It allows you to limit the domain that your prediction will be used and scored within.",
|
||||
~examples=[
|
||||
`declareFn({
|
||||
|
@ -47,7 +48,6 @@ let library = [
|
|||
~isExperimental=true,
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=true,
|
||||
~name="declare",
|
||||
~inputs=[Declaration.frType],
|
||||
~run=(_, inputs, _) => {
|
||||
|
|
|
@ -29,12 +29,12 @@ let library = [
|
|||
Function.make(
|
||||
~name="make",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtArray,
|
||||
~examples=[`List.make(2, "testValue")`],
|
||||
~definitions=[
|
||||
//Todo: If the second item is a function with no args, it could be nice to run this function and return the result.
|
||||
FnDefinition.make(
|
||||
~requiresNamespace,
|
||||
~name="make",
|
||||
~inputs=[FRTypeNumber, FRTypeAny],
|
||||
~run=(inputs, _, _) => {
|
||||
|
@ -51,11 +51,11 @@ let library = [
|
|||
Function.make(
|
||||
~name="upTo",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtArray,
|
||||
~examples=[`List.upTo(1,4)`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace,
|
||||
~name="upTo",
|
||||
~inputs=[FRTypeNumber, FRTypeNumber],
|
||||
~run=(_, inputs, _) =>
|
||||
|
@ -70,10 +70,10 @@ let library = [
|
|||
Function.make(
|
||||
~name="first",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~examples=[`List.first([1,4,5])`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace,
|
||||
~name="first",
|
||||
~inputs=[FRTypeArray(FRTypeAny)],
|
||||
~run=(inputs, _, _) =>
|
||||
|
@ -89,10 +89,10 @@ let library = [
|
|||
Function.make(
|
||||
~name="last",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~examples=[`List.last([1,4,5])`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=false,
|
||||
~name="last",
|
||||
~inputs=[FRTypeArray(FRTypeAny)],
|
||||
~run=(inputs, _, _) =>
|
||||
|
@ -109,10 +109,10 @@ let library = [
|
|||
~name="reverse",
|
||||
~nameSpace,
|
||||
~output=EvtArray,
|
||||
~requiresNamespace=false,
|
||||
~examples=[`List.reverse([1,4,5])`],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=false,
|
||||
~name="reverse",
|
||||
~inputs=[FRTypeArray(FRTypeAny)],
|
||||
~run=(inputs, _, _) =>
|
||||
|
|
|
@ -7,7 +7,6 @@ let requiresNamespace = false
|
|||
module NumberToNumber = {
|
||||
let make = (name, fn) =>
|
||||
FnDefinition.make(
|
||||
~requiresNamespace,
|
||||
~name,
|
||||
~inputs=[FRTypeNumber],
|
||||
~run=(_, inputs, _) => {
|
||||
|
@ -24,7 +23,6 @@ module NumberToNumber = {
|
|||
module ArrayNumberDist = {
|
||||
let make = (name, fn) => {
|
||||
FnDefinition.make(
|
||||
~requiresNamespace=false,
|
||||
~name,
|
||||
~inputs=[FRTypeArray(FRTypeNumber)],
|
||||
~run=(_, inputs, _) =>
|
||||
|
@ -51,6 +49,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="floor",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`floor(3.5)`],
|
||||
~definitions=[NumberToNumber.make("floor", Js.Math.floor_float)],
|
||||
|
@ -59,6 +58,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="ceiling",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`ceiling(3.5)`],
|
||||
~definitions=[NumberToNumber.make("ceil", Js.Math.ceil_float)],
|
||||
|
@ -67,6 +67,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="absolute value",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`abs(3.5)`],
|
||||
~definitions=[NumberToNumber.make("abs", Js.Math.abs_float)],
|
||||
|
@ -75,6 +76,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="exponent",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`exp(3.5)`],
|
||||
~definitions=[NumberToNumber.make("exp", Js.Math.exp)],
|
||||
|
@ -83,6 +85,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="log",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`log(3.5)`],
|
||||
~definitions=[NumberToNumber.make("log", Js.Math.log)],
|
||||
|
@ -91,6 +94,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="log base 10",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`log10(3.5)`],
|
||||
~definitions=[NumberToNumber.make("log10", Js.Math.log10)],
|
||||
|
@ -99,6 +103,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="log base 2",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`log2(3.5)`],
|
||||
~definitions=[NumberToNumber.make("log2", Js.Math.log2)],
|
||||
|
@ -107,6 +112,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="round",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`round(3.5)`],
|
||||
~definitions=[NumberToNumber.make("round", Js.Math.round)],
|
||||
|
@ -115,6 +121,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="sum",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`sum([3,5,2])`],
|
||||
~definitions=[ArrayNumberDist.make("sum", r => r->E.A.Floats.sum->Wrappers.evNumber->Ok)],
|
||||
|
@ -123,6 +130,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="product",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`product([3,5,2])`],
|
||||
~definitions=[
|
||||
|
@ -133,6 +141,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="min",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`min([3,5,2])`],
|
||||
~definitions=[ArrayNumberDist.make("min", r => r->E.A.Floats.min->Wrappers.evNumber->Ok)],
|
||||
|
@ -141,6 +150,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="max",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`max([3,5,2])`],
|
||||
~definitions=[ArrayNumberDist.make("max", r => r->E.A.Floats.max->Wrappers.evNumber->Ok)],
|
||||
|
@ -149,6 +159,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="mean",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`mean([3,5,2])`],
|
||||
~definitions=[ArrayNumberDist.make("mean", r => r->E.A.Floats.mean->Wrappers.evNumber->Ok)],
|
||||
|
@ -157,6 +168,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="geometric mean",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`geomean([3,5,2])`],
|
||||
~definitions=[
|
||||
|
@ -167,6 +179,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="standard deviation",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`stdev([3,5,2,3,5])`],
|
||||
~definitions=[ArrayNumberDist.make("stdev", r => r->E.A.Floats.stdev->Wrappers.evNumber->Ok)],
|
||||
|
@ -175,6 +188,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="variance",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[`variance([3,5,2,3,5])`],
|
||||
~definitions=[
|
||||
|
@ -185,6 +199,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="sort",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtArray,
|
||||
~examples=[`sort([3,5,2,3,5])`],
|
||||
~definitions=[
|
||||
|
@ -197,6 +212,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="cumulative sum",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtArray,
|
||||
~examples=[`cumsum([3,5,2,3,5])`],
|
||||
~definitions=[
|
||||
|
@ -209,6 +225,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="cumulative prod",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtArray,
|
||||
~examples=[`cumprod([3,5,2,3,5])`],
|
||||
~definitions=[
|
||||
|
@ -221,6 +238,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="diff",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtArray,
|
||||
~examples=[`diff([3,5,2,3,5])`],
|
||||
~definitions=[
|
||||
|
|
|
@ -27,9 +27,9 @@ let library = [
|
|||
Function.make(
|
||||
~name="makeContinuous",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace,
|
||||
~name="makeContinuous",
|
||||
~inputs=[FRTypeArray(FRTypeRecord([("x", FRTypeNumeric), ("y", FRTypeNumeric)]))],
|
||||
~run=(_, inputs, _) => inputsTodist(inputs, r => Continuous(Continuous.make(r))),
|
||||
|
@ -41,9 +41,9 @@ let library = [
|
|||
Function.make(
|
||||
~name="makeDiscrete",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace,
|
||||
~name="makeDiscrete",
|
||||
~inputs=[FRTypeArray(FRTypeRecord([("x", FRTypeNumeric), ("y", FRTypeNumeric)]))],
|
||||
~run=(_, inputs, _) => inputsTodist(inputs, r => Discrete(Discrete.make(r))),
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
open FunctionRegistry_Core
|
||||
|
||||
let nameSpace = "Dist"
|
||||
let requiresNamespace = false
|
||||
let requiresNamespace = true
|
||||
|
||||
let runScoring = (estimate, answer, prior, env) => {
|
||||
GenericDist.Score.logScore(~estimate, ~answer, ~prior, ~env)
|
||||
|
@ -13,6 +13,7 @@ let library = [
|
|||
Function.make(
|
||||
~name="logScore",
|
||||
~nameSpace,
|
||||
~requiresNamespace,
|
||||
~output=EvtNumber,
|
||||
~examples=[
|
||||
"Dist.logScore({estimate: normal(5,2), answer: normal(5.2,1)}, prior: normal(5.5,3)})",
|
||||
|
@ -21,7 +22,6 @@ let library = [
|
|||
],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~requiresNamespace,
|
||||
~name="logScore",
|
||||
~inputs=[
|
||||
FRTypeRecord([
|
||||
|
@ -48,7 +48,6 @@ let library = [
|
|||
),
|
||||
FnDefinition.make(
|
||||
~name="logScore",
|
||||
~requiresNamespace,
|
||||
~inputs=[FRTypeRecord([("estimate", FRTypeDist), ("answer", FRTypeDistOrNumber)])],
|
||||
~run=(_, inputs, env) => {
|
||||
switch FunctionRegistry_Helpers.Prepare.ToValueArray.Record.twoArgs(inputs) {
|
||||
|
@ -69,11 +68,11 @@ let library = [
|
|||
~name="klDivergence",
|
||||
~nameSpace,
|
||||
~output=EvtNumber,
|
||||
~requiresNamespace,
|
||||
~examples=["Dist.klDivergence(normal(5,2), normal(5,1.5)"],
|
||||
~definitions=[
|
||||
FnDefinition.make(
|
||||
~name="klDivergence",
|
||||
~requiresNamespace,
|
||||
~inputs=[FRTypeDist, FRTypeDist],
|
||||
~run=(_, inputs, env) => {
|
||||
switch inputs {
|
||||
|
|
|
@ -18,9 +18,12 @@ type internalExpressionValue = InternalExpressionValue.t
|
|||
let registry = FunctionRegistry_Library.registry
|
||||
|
||||
let tryRegistry = ((fnName, args): InternalExpressionValue.functionCall, env) => {
|
||||
FunctionRegistry_Core.Registry.matchAndRun(~registry, ~fnName, ~args, ~env)->E.O2.fmap(
|
||||
E.R2.errMap(_, s => Reducer_ErrorValue.RETodo(s)),
|
||||
)
|
||||
FunctionRegistry_Core.Registry.matchAndRun(
|
||||
~registry=FunctionRegistry_Core.Registry.exportedSubset(registry),
|
||||
~fnName,
|
||||
~args,
|
||||
~env,
|
||||
)->E.O2.fmap(E.R2.errMap(_, s => Reducer_ErrorValue.RETodo(s)))
|
||||
}
|
||||
|
||||
let dispatch = (call: InternalExpressionValue.functionCall, environment, chain): result<
|
||||
|
|
Loading…
Reference in New Issue
Block a user