C++テンプレートだけでLisp アンサー

eq と atom について、あぁなるほど、こういうやりかたもあったのか。

atom の定義の仕方は、ユーザ定義アトムを作りやすくするため。とのことですが、純Lispの(おいらの勝手な)考え方というか醍醐味は、「nil と T だけのアトム、cons だけの構造、5つの関数だけでどれだけやるか」なので、おいらはユーザ定義のアトムは考えない、という立場。もちろんユーザ定義のアトムというのもあってもいいと思うし、それを容易にした atom はとても参考になります。

ちなみに、おいらは自然数は cons リストの長さで定義するようにしました。整数は、そのペアです。