func

The function class for Cheddar

Arguments:

name

type

description

arguments

2D array

(described below) this matrix described the arguments for the function. In the form of [ ["arg_name", { <options> }] ]

body

function

(described below) the function body

arguments matrix:

name

type

default

description

Type

cheddar.class

n/a

If provided, the argument is required to be of the given type

Default

cheddar.class{}

n/a

If provided and the argument is not provided, it will be set to this rather than throwing an error.

Splat

bool

false

If provided, this and the following arguments will be combined into a cheddar.array object.

Optional

bool

false

If true, the argument will be nil if not provided

function body:

argument

description

first

This is the function's scope as a cheddar.scope.

second

This is a function which returns a variable's value, given a variable name.

Usage:

-> (a, b = 0) a + b, with api:

new cheddar.func(
  [
    ["a", {}],
    ["b", {
        Default: cheddar.init(
          cheddar.number,
          10, 0, 0
        )
    }]
  ],
  function(scope, input) {
    return cheddar.init(
      cheddar.number,
      10, 0,
      input("a").value + input("b").value
    );
  }
)

Internal Usage

Execution:

func.exec([
    arg1, arg2, ...
], scope)

scope will be set to self variable, if none, set to null.

Arguments:

func.args

the 2D matrix representing the arguments the function is requesting.

Last updated