lisp - (a (b . c) d) 在方框符号中的正确表示是什么?

标签 lisp common-lisp

我正在做 Paul Graham 的 ANSI Common Lisp 中的练习。并且我有一个别人的练习的关键,就是:

http://www.shido.info/lisp/pacl2_e.html

完成第 3 章的练习后,我指着那个键一个一个地检查我的答案。到了(a (b . c) d)的表示,我发现我看不懂Shido的回答,就是:

http://www.shido.info/lisp/acl3-1d75.png

真正让我困惑的是,在他的回答中,d 后面没有跟nil

那么他的回答对吗? (a (b . c) d) 的正确表示是什么?

最佳答案

您可以使用 sdraw program :

(load "sdraw.generic.lisp")

(sdraw '(a (b . c) d))

[*|*]--->[*|*]------->[*|*]--->NIL
 |        |            |
 v        v            v
 A       [*|*]--->C    D
          |
          v
          B

由此可见,你的想法是正确的。

关于lisp - (a (b . c) d) 在方框符号中的正确表示是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53986804/

相关文章:

string - 将字符串拆分为单个字符

lisp - 是否有通用的 lisp 包命名约定?

common-lisp - setq vs 未声明的自由变量(常见的 lisp)

ssl - CL+SSL SSL Error : Unsafe legacy renegotiation disabled. 如何绕过或解决?

common-lisp - 奇怪的自动完成导致 emacs + common lisp

clojure - 定义简化的 arity 偏函数

variables - Scheme 中的未绑定(bind)变量

java - 如何在 LISP 解释器中实现闭包

compiler-construction - 使用读取宏编译 Lisp 代码

python - 普通口齿不清 : Launch subprocess with different working directory than lisp process