x-engine-c v0.2.13
The C engine for x-lang
Loading...
Searching...
No Matches
x-lisp.h
Go to the documentation of this file.
1#ifndef X_LISP_H
2#define X_LISP_H
3
16/*
17 * ., .,
18 * {O,O}
19 * ( )
20 * " "
21 */
22
23#include "x-obj.h"
24
35#define x_cons(B,F,X,Y) x_mkspair((B), (F), (X), (Y))
36
52#define x_car(X) x_firstobj(X)
53#define x_cdr(X) x_restobj(X)
55/* 2-deep */
56#define x_caar(X) x_car(x_car(X))
57#define x_cadr(X) x_car(x_cdr(X))
58#define x_cdar(X) x_cdr(x_car(X))
59#define x_cddr(X) x_cdr(x_cdr(X))
61/* 3-deep */
62#define x_caaar(X) x_car(x_caar(X))
63#define x_caadr(X) x_car(x_cadr(X))
64#define x_cadar(X) x_car(x_cdar(X))
65#define x_caddr(X) x_car(x_cddr(X))
66#define x_cdaar(X) x_cdr(x_caar(X))
67#define x_cdadr(X) x_cdr(x_cadr(X))
68#define x_cddar(X) x_cdr(x_cdar(X))
69#define x_cdddr(X) x_cdr(x_cddr(X))
71/* 4-deep */
72#define x_caaaar(X) x_car(x_caaar(X))
73#define x_caaadr(X) x_car(x_caadr(X))
74#define x_caadar(X) x_car(x_cadar(X))
75#define x_caaddr(X) x_car(x_caddr(X))
76#define x_cadaar(X) x_car(x_cdaar(X))
77#define x_cadadr(X) x_car(x_cdadr(X))
78#define x_caddar(X) x_car(x_cddar(X))
79#define x_cadddr(X) x_car(x_cdddr(X))
80#define x_cdaaar(X) x_cdr(x_caaar(X))
81#define x_cdaadr(X) x_cdr(x_caadr(X))
82#define x_cdadar(X) x_cdr(x_cadar(X))
83#define x_cdaddr(X) x_cdr(x_caddr(X))
84#define x_cddaar(X) x_cdr(x_cdaar(X))
85#define x_cddadr(X) x_cdr(x_cdadr(X))
86#define x_cdddar(X) x_cdr(x_cddar(X))
87#define x_cddddr(X) x_cdr(x_cdddr(X))
97#define x_setcar(X,Y) (x_car((X)) = (Y))
98
100#define x_setcdr(X,Y) (x_cdr((X)) = (Y))
101
104#endif /* X_LISP_H */
The x-expr object system – atoms, pairs, flags, and type dispatch.