|
x-engine-c v0.2.13
The C engine for x-lang
|
Navigate nested pairs by a binary path. More...
Macros | |
| #define | x_0(X) x_firstobj(X) |
| #define | x_1(X) x_restobj(X) |
| #define | x_00(X) x_0(x_0(X)) |
| #define | x_01(X) x_0(x_1(X)) |
| #define | x_10(X) x_1(x_0(X)) |
| #define | x_11(X) x_1(x_1(X)) |
| #define | x_000(X) x_0(x_00(X)) |
| #define | x_001(X) x_0(x_01(X)) |
| #define | x_010(X) x_0(x_10(X)) |
| #define | x_011(X) x_0(x_11(X)) |
| #define | x_100(X) x_1(x_00(X)) |
| #define | x_101(X) x_1(x_01(X)) |
| #define | x_110(X) x_1(x_10(X)) |
| #define | x_111(X) x_1(x_11(X)) |
| #define | x_0000(X) x_0(x_000(X)) |
| #define | x_0001(X) x_0(x_001(X)) |
| #define | x_0010(X) x_0(x_010(X)) |
| #define | x_0011(X) x_0(x_011(X)) |
| #define | x_0100(X) x_0(x_100(X)) |
| #define | x_0101(X) x_0(x_101(X)) |
| #define | x_0110(X) x_0(x_110(X)) |
| #define | x_0111(X) x_0(x_111(X)) |
| #define | x_1000(X) x_1(x_000(X)) |
| #define | x_1001(X) x_1(x_001(X)) |
| #define | x_1010(X) x_1(x_010(X)) |
| #define | x_1011(X) x_1(x_011(X)) |
| #define | x_1100(X) x_1(x_100(X)) |
| #define | x_1101(X) x_1(x_101(X)) |
| #define | x_1110(X) x_1(x_110(X)) |
| #define | x_1111(X) x_1(x_111(X)) |
Navigate nested pairs by a binary path.
Each bit selects a branch – 0 = first, 1 = rest – read left to right as a chain of accessors. For example x_011() is "first of rest of rest", expanding to x_0(x_1(x_1(X))). The leftmost bit is the outermost (last applied) accessor. All results are object pointers. Provided up to four levels deep.
| #define x_0 | ( | X | ) | x_firstobj(X) |
first
| #define x_1 | ( | X | ) | x_restobj(X) |
rest