>>133 関数の引数に「プログラム」なるものを直接渡せるなら
その通りかもね。
>>137 C言語なら関数ポインタを渡すっていう手がありますね。
関数も一応型をもったオブジェクトとして扱えなくもないです。
せめてCやC++でも高階関数や無名が使えればなあ。
そんなに無茶なことでもないと思うけど・・。
list_t map(int (*proc)(pair_t), list_t lis ...) {
map1(list_t lis) {
if (nullp(lis))
return nil;
return cons(proc(car(lis)), map1(cdr(lis)))
}
maps() { 〜map1(car(lis))〜}
}
test(void) {
list_t r = map(lambda(pair_t p){ 〜 });
display(r);
delete r;
}
>>134 パーサも楽だし、前置や後置ってのはいいと思うんだ。
Lisp、Scheme について言えば、ループをやたら再帰で表現するのが嫌だ。
さらに用いる変数を増やしてまで末尾再帰にするところが。