lisp - 通过嵌套列表 LISP 递归

标签 lisp common-lisp

我将如何递归嵌套列表?

例如,给定:'((A 1 2) (B 3 4))

如何将 2 添加到每个嵌套子列表中的第二个元素?

(defun get-p0 (points)
    (loop for x from 0 to
            (-  (list-length    points) 1) do
                (+ 2 (cadr (nth x points)))
    )
)

我不太确定为什么 (get-p0 '((A 1 2) (B 3 4))) 返回 NIL。

最佳答案

我会选择这样的东西:

(loop for (letter x y) in '((A 1 2) (B 3 4))
     collect (list letter (+ 2 x) y))

原因:它更短而且您不需要测量列表的长度来迭代它(您为什么要这样做?)

关于lisp - 通过嵌套列表 LISP 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15351988/

相关文章:

function - Lisp 中的多项式

matrix - 递归 lisp 替换元素迷宫求解器

common-lisp - 为什么我需要评估新 REPL 的 defpackage?

lisp - 存储函数调用并执行它们

oop - 为什么泛型函数与访问函数 lisp 不同

emacs - 根据值将列表列表转换为不同的列表列表

variables - let * 中的 undefined variable

string - 将字符串转换为字符串序列

Clojure Defn 在显示正确答案后返回空括号

lisp - 如何让 Lisp 忘记以前导出的符号?