push!マクロ
9章1節で出てきたけど、ガン無視してた。
先頭に要素を追加したリストで名前を束縛し直す操作
gosh> (define *nums* (list 1 2 3 4)) *nums* gosh> *nums* (1 2 3 4) gosh> (set! *nums* (cons 0 *nums*)) (0 1 2 3 4)
みたいなのはよくあることなので、push!というマクロが用意されているそうだ。
こんなん。
gosh> *nums* (0 1 2 3 4) gosh> (push! *nums* -1) (-1 0 1 2 3 4)