lisp - 基本 LISP 问题

标签 lisp common-lisp

所以 (car '(2 3)) -> 2

(cdr '(2 3)) -> (3)

我应该使用哪个函数才能得到 yield 3?

(function-name '(2 3)) -> 3

最佳答案

简单地做应该没问题:

(car (cdr '(2 3)))

这与:

(cadr '(2 3))

这是可行的,因为“car”获取表达式中的第一个元素,而 cdr 返回列表的其余部分,没有第一个元素。您已经证明“(cdr '(2 3))”返回“(3)”列表。因此,this的“车”是元素(不是列表),“3”。顺便说一句,“(cdr (cdr ('2 3)))”是“(cdr (3))”,也就是“()”。

LISP 是不是很有趣?

关于lisp - 基本 LISP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305166/

相关文章:

macros - 在宏中,我可以让 ,var 评估为空白/无吗?

inheritance - 普通 lisp 中的多个构造函数

loops - 如何在 lisp 中生成一个笛卡尔积?

macros - Lisp:宏可以递归吗?

network-programming - 为什么IOLib中的 "receive-from"函数总是抛出EWOULDBLOCK异常?

lisp - SBCL - 常见的 Lisp 错误

lisp - 如何在 Windows 下使用 MSVC2010 构建 ecl.dll 的静态库?

lisp - 如何在 SLIME EMACS 窗口中写入逗号字符

functional-programming - SICP 示例不适用于 Racket

performance - 如何着手编写核心函数,而不是使用命令式风格?