リスト内の他のすべての要素に関数(* x 2)を適用し、ループマクロを使用してリスト全体を返したいとします。私がこれまでに作ってみた解決策はこれです:Common Lisp - リスト内の他のすべての要素に関数を適用する
(defun double-every-other (xs)
(loop for x in xs by #'cddr collect (* x 2)))
しかし、これは二重の他のすべての要素と私だけが実行ので、もし、倍増された要素を返します。
(double-every-other '(1 2 3 4))
結果は次のようになります。
'(4 8)
しかし、私は結果になりたい:
'(1 4 3 8)
(ループ)を使ってこれを行う方法はありますか?あなたは、インスタンスのためにリストを走査しながら増加する整数をテストすることができ
が奇数の要素を持つリストでは動作しません。 – Renzo
@Renzoありがとう、私はそれを逃した – coredump