x-engine-c v0.2.13
The C engine for x-lang
Loading...
Searching...
No Matches
Lisp car/cdr Accessors

Traditional Lisp accessors for navigating pair structures. More...

Macros

#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))
 

Detailed Description

Traditional Lisp accessors for navigating pair structures.

Compound accessors follow standard Lisp naming: each letter between c and r is a (car) or d (cdr), applied right-to-left. For example, x_cadr(X) = car(cdr(X)) = first of rest.

Provided up to four levels deep (e.g. x_caddar).

Macro Definition Documentation

◆ x_caaaar

#define x_caaaar (   X)    x_car(x_caaar(X))

4-deep: car(car(car(car(X))))

◆ x_caaadr

#define x_caaadr (   X)    x_car(x_caadr(X))

4-deep: car(car(car(cdr(X))))

◆ x_caaar

#define x_caaar (   X)    x_car(x_caar(X))

car(car(car(X)))

◆ x_caadar

#define x_caadar (   X)    x_car(x_cadar(X))

4-deep: car(car(cdr(car(X))))

◆ x_caaddr

#define x_caaddr (   X)    x_car(x_caddr(X))

4-deep: car(car(cdr(cdr(X))))

◆ x_caadr

#define x_caadr (   X)    x_car(x_cadr(X))

car(car(cdr(X)))

◆ x_caar

#define x_caar (   X)    x_car(x_car(X))

car(car(X))

◆ x_cadaar

#define x_cadaar (   X)    x_car(x_cdaar(X))

4-deep: car(cdr(car(car(X))))

◆ x_cadadr

#define x_cadadr (   X)    x_car(x_cdadr(X))

4-deep: car(cdr(car(cdr(X))))

◆ x_cadar

#define x_cadar (   X)    x_car(x_cdar(X))

car(cdr(car(X)))

◆ x_caddar

#define x_caddar (   X)    x_car(x_cddar(X))

4-deep: car(cdr(cdr(car(X))))

◆ x_cadddr

#define x_cadddr (   X)    x_car(x_cdddr(X))

4-deep: car(cdr(cdr(cdr(X))))

◆ x_caddr

#define x_caddr (   X)    x_car(x_cddr(X))

car(cdr(cdr(X)))

◆ x_cadr

#define x_cadr (   X)    x_car(x_cdr(X))

car(cdr(X))

◆ x_car

#define x_car (   X)    x_firstobj(X)

First element of pair X.

◆ x_cdaaar

#define x_cdaaar (   X)    x_cdr(x_caaar(X))

4-deep: cdr(car(car(car(X))))

◆ x_cdaadr

#define x_cdaadr (   X)    x_cdr(x_caadr(X))

4-deep: cdr(car(car(cdr(X))))

◆ x_cdaar

#define x_cdaar (   X)    x_cdr(x_caar(X))

cdr(car(car(X)))

◆ x_cdadar

#define x_cdadar (   X)    x_cdr(x_cadar(X))

4-deep: cdr(car(cdr(car(X))))

◆ x_cdaddr

#define x_cdaddr (   X)    x_cdr(x_caddr(X))

4-deep: cdr(car(cdr(cdr(X))))

◆ x_cdadr

#define x_cdadr (   X)    x_cdr(x_cadr(X))

cdr(car(cdr(X)))

◆ x_cdar

#define x_cdar (   X)    x_cdr(x_car(X))

cdr(car(X))

◆ x_cddaar

#define x_cddaar (   X)    x_cdr(x_cdaar(X))

4-deep: cdr(cdr(car(car(X))))

◆ x_cddadr

#define x_cddadr (   X)    x_cdr(x_cdadr(X))

4-deep: cdr(cdr(car(cdr(X))))

◆ x_cddar

#define x_cddar (   X)    x_cdr(x_cdar(X))

cdr(cdr(car(X)))

◆ x_cdddar

#define x_cdddar (   X)    x_cdr(x_cddar(X))

4-deep: cdr(cdr(cdr(car(X))))

◆ x_cddddr

#define x_cddddr (   X)    x_cdr(x_cdddr(X))

4-deep: cdr(cdr(cdr(cdr(X))))

◆ x_cdddr

#define x_cdddr (   X)    x_cdr(x_cddr(X))

cdr(cdr(cdr(X)))

◆ x_cddr

#define x_cddr (   X)    x_cdr(x_cdr(X))

cdr(cdr(X))

◆ x_cdr

#define x_cdr (   X)    x_restobj(X)

Rest element of pair X.