|
x-engine-c v0.2.13
The C engine for x-lang
|
Lisp-style aliases for pair construction and traversal. More...
#include "x-obj.h"Go to the source code of this file.
Macros | |
| #define | x_cons(B, F, X, Y) x_mkspair((B), (F), (X), (Y)) |
| #define | x_car(X) x_firstobj(X) |
| #define | x_cdr(X) x_restobj(X) |
| #define | x_caar(X) x_car(x_car(X)) |
| #define | x_cadr(X) x_car(x_cdr(X)) |
| #define | x_cdar(X) x_cdr(x_car(X)) |
| #define | x_cddr(X) x_cdr(x_cdr(X)) |
| #define | x_caaar(X) x_car(x_caar(X)) |
| #define | x_caadr(X) x_car(x_cadr(X)) |
| #define | x_cadar(X) x_car(x_cdar(X)) |
| #define | x_caddr(X) x_car(x_cddr(X)) |
| #define | x_cdaar(X) x_cdr(x_caar(X)) |
| #define | x_cdadr(X) x_cdr(x_cadr(X)) |
| #define | x_cddar(X) x_cdr(x_cdar(X)) |
| #define | x_cdddr(X) x_cdr(x_cddr(X)) |
| #define | x_caaaar(X) x_car(x_caaar(X)) |
| #define | x_caaadr(X) x_car(x_caadr(X)) |
| #define | x_caadar(X) x_car(x_cadar(X)) |
| #define | x_caaddr(X) x_car(x_caddr(X)) |
| #define | x_cadaar(X) x_car(x_cdaar(X)) |
| #define | x_cadadr(X) x_car(x_cdadr(X)) |
| #define | x_caddar(X) x_car(x_cddar(X)) |
| #define | x_cadddr(X) x_car(x_cdddr(X)) |
| #define | x_cdaaar(X) x_cdr(x_caaar(X)) |
| #define | x_cdaadr(X) x_cdr(x_caadr(X)) |
| #define | x_cdadar(X) x_cdr(x_cadar(X)) |
| #define | x_cdaddr(X) x_cdr(x_caddr(X)) |
| #define | x_cddaar(X) x_cdr(x_cdaar(X)) |
| #define | x_cddadr(X) x_cdr(x_cdadr(X)) |
| #define | x_cdddar(X) x_cdr(x_cddar(X)) |
| #define | x_cddddr(X) x_cdr(x_cdddr(X)) |
Pair Mutation | |
| #define | x_setcar(X, Y) (x_car((X)) = (Y)) |
| #define | x_setcdr(X, Y) (x_cdr((X)) = (Y)) |
Lisp-style aliases for pair construction and traversal.
Provides traditional Lisp names (cons, car, cdr) as macros that map to the underlying x-obj pair operations.
| #define x_cons | ( | B, | |
| F, | |||
| X, | |||
| Y | |||
| ) | x_mkspair((B), (F), (X), (Y)) |
Construct a new pair (cons cell).
Alias for x_mkspair().
| B | Base environment. |
| F | Object flags. |
| X | First element (car). |
| Y | Rest element (cdr). |
| #define x_setcar | ( | X, | |
| Y | |||
| ) | (x_car((X)) = (Y)) |
Set the car (first element) of pair X to Y.
| #define x_setcdr | ( | X, | |
| Y | |||
| ) | (x_cdr((X)) = (Y)) |
Set the cdr (rest element) of pair X to Y.