bburdette/schelme/1.0.0

NOTE: this package is not compatible with Elm 0.19.1

Prelude

Implementation of some fundamental functions, and a few values. Also some helpers for defining your own BuiltIn or SideEffector functions.

type alias BuiltInFn a =
NameSpace a
-> a
-> List (Term a)
-> Result String ( NameSpace a, Term a )

function type for evalArgsBuiltIn

type alias SideEffectorFn a =
NameSpace a
-> a
-> List (Term a)
-> Result String ( NameSpace a, a, Term a )

function type to pass to evalArgsSideEffector

builtInFn : BuiltInFn a -> BuiltIn a

make a BuiltIn function where arguments are NOT evaled before the BuiltInFn function is called. Useful for things like defn.

evalArgsBuiltIn : BuiltInFn a -> BuiltIn a

make a BuiltIn function where arguments are evaled before the BuiltInFn function is called.

evalArgsSideEffector : SideEffectorFn a -> SideEffector a

make a SideEffector function where arguments are evaled before the SideEffectorFn function is called.

math : Dict String (Term a)

a NameSpace of mathy schelme functions.

prelude : Dict String (Term a)

a NameSpace of fundamental schelme functions.