builtin.h file

Contents

Functions

auto builtin(lenv* env, lval* arg, const char* func) -> lval*
Dispatches the builtin function f to the lval a.
auto builtin_op(lenv* env, lval* arg, const char* operand) -> lval*
Evaluates the lval a as an operator.
auto builtin_add(lenv* env, lval* arg) -> lval*
Built-in addition operator.
auto builtin_sub(lenv* env, lval* arg) -> lval*
Built-in subtraction operator.
auto builtin_mul(lenv* env, lval* arg) -> lval*
Built-in multiplication operator.
auto builtin_div(lenv* env, lval* arg) -> lval*
Built-in division operator.
auto builtin_head(lenv* env, lval* arg) -> lval*
Returns the head of a Q-Expression.
auto builtin_tail(lenv* env, lval* arg) -> lval*
Returns the tail of a Q-Expression.
auto builtin_list(lenv* env, lval* arg) -> lval*
Converts a S-Expression to a Q-Expression.
auto builtin_eval(lenv* env, lval* arg) -> lval*
Evaluates a Q-Expression as an S-Expression.
auto builtin_join(lenv* env, lval* arg) -> lval*
Joins multiple Q-Expressions into a single Q-Expression.
auto builtin_lambda(lenv* env, lval* arg) -> lval*
Defines the lambda operator.
auto builtin_def(lenv* env, lval* arg) -> lval*
Allows the definition of new functions in the environment.
auto builtin_put(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_var(lenv* env, lval* arg, const char* func) -> lval*
TODO.
auto builtin_ord(lenv* env, lval* arg, const char* operand) -> lval*
TODO.
auto builtin_gt(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_lt(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_ge(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_le(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_cmp(lenv* env, lval* arg, const char* operand) -> lval*
TODO.
auto builtin_eq(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_ne(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_if(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_load(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_print(lenv* env, lval* arg) -> lval*
TODO.
auto builtin_error(lenv* env, lval* arg) -> lval*
TODO.

Function documentation

lval* builtin(lenv* env, lval* arg, const char* func)

Dispatches the builtin function f to the lval a.

Returns lval*

Dispatches the builtin function f to the lval a. Returns an error if f is not a builtin function.

lval* builtin_op(lenv* env, lval* arg, const char* operand)

Evaluates the lval a as an operator.

Returns lval*

Evaluates the lval a as an operator. Returns an error if a's children are not of type LVAL_NUM.

lval* builtin_add(lenv* env, lval* arg)

Built-in addition operator.

Returns lval*

Curly's built-in addition operator.

lval* builtin_sub(lenv* env, lval* arg)

Built-in subtraction operator.

Returns lval*

Curly's built-in subtraction operator.

lval* builtin_mul(lenv* env, lval* arg)

Built-in multiplication operator.

Returns lval*

Curly's built-in multiplication operator.

lval* builtin_div(lenv* env, lval* arg)

Built-in division operator.

Returns lval*

Curly's built-in division operator.

lval* builtin_head(lenv* env, lval* arg)

Returns the head of a Q-Expression.

Returns lval*

Returns the head of a Q-Expression and discards the tail.

lval* builtin_tail(lenv* env, lval* arg)

Returns the tail of a Q-Expression.

Returns lval*

Returns the tail of a Q-Expression and discards the head.

lval* builtin_list(lenv* env, lval* arg)

Converts a S-Expression to a Q-Expression.

Returns lval*

Converts a S-Expression to a Q-Expression and returns it.

lval* builtin_eval(lenv* env, lval* arg)

Evaluates a Q-Expression as an S-Expression.

Returns lval*

Evaluates a Q-Expression as an S-Expression using lval_eval. Returns an error if the Q-Expression contains another Q-Expression.

lval* builtin_join(lenv* env, lval* arg)

Joins multiple Q-Expressions into a single Q-Expression.

Returns lval*

Joins multiple Q-Expressions into a single Q-Expression using lval_join returns the resulting Q-Expression.

lval* builtin_lambda(lenv* env, lval* arg)

Defines the lambda operator.

Returns lval*

FIX

Defines the lambda operator as the \ character.

lval* builtin_def(lenv* env, lval* arg)

Allows the definition of new functions in the environment.

Returns lval*

FIX

Allows the definition of new functions in the environment.

lval* builtin_error(lenv* env, lval* arg)

TODO.

TODO