01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
CTFE でポインタが使えないので、 構造体でリストを表現できない気がしていた。
CTFE で配列は使える。 ポインタの代わりに配列を使えばいいのか。
struct Pair { Pair[] cell; } Pair cons(Pair x,Pair y) { return Pair([x,y]); } Pair car(Pair x) { return x.cell[0]; } Pair cdr(Pair x) { return x.cell[1]; }
こんな感じにするとできる。