bburdette/schelme/3.0.0

Schelme.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 and comment.

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.

mathGlossary : TermGlossary

Glossary of math functions

preludeGlossary : TermGlossary

Glossary of prelude terms