Lisp Scheme Part27
■ このスレッドは過去ログ倉庫に格納されています
0041デフォルトの名無しさん
2009/07/29(水) 06:16:22泥縄な解決法としては、
(defun foo (ls n) (if (= n 0) (pop ls) (pop (cdr (nthcdr (- n 1) ls))) ))
くらいじゃないですか。
pop とかの代入とか更新とかする系のマクロは
参照先として場所を示す式を取れるわけですけれど、
nthcdr は標準では場所を表す名前として使えるようになっていないので
この場合はワンクッション置く必要があります。
突っ込むと説明がややこしいところですけど。仕様的にはだいたいこのへん。
http://www.lispworks.com/documentation/HyperSpec/Body/05_a.htm
■ このスレッドは過去ログ倉庫に格納されています