ここ数回直積の件でIEnumeralbeをリスト的に扱ってみたけど、これでLISPできるんじゃね?とふと思った。ってことで純LISPの5関数。いつか書いてみよう。
cons
コンスセルを表現するのは難しそうだなぁ。IEnumerableまんまじゃやっぱダメか。普通のリストだったら
Enumerable.Repeat(kar, 1).Concat(kdr);
でいけそうだけど、(1 . 2)とかの末尾がnilじゃないリストはどうすんべ...。
アトムかどうか判断する処理を自分で書かんとな。
IsAtom(exp);