09/07/29 06:16:22
>>40
泥縄な解決法としては、
(defun foo (ls n) (if (= n 0) (pop ls) (pop (cdr (nthcdr (- n 1) ls))) ))
くらいじゃないですか。
pop とかの代入とか更新とかする系のマクロは
参照先として場所を示す式を取れるわけですけれど、
nthcdr は標準では場所を表す名前として使えるようになっていないので
この場合はワンクッション置く必要があります。
突っ込むと説明がややこしいところですけど。仕様的にはだいたいこのへん。
URLリンク(www.lispworks.com)