1

我想要一对,其第二个元素可以是符号或列表。例如,'(x . y)并且'(x . (a b c d))在我的上下文中都是有效的对。如果第二个元素只是一个符号,我可以得到一对cons,但如果它是一个列表呢?

4

2 回答 2

1

然后你仍然使用cons方案打印机只是在打印这些对而不是其他对时更好。这是他们看起来不同的唯一原因。

> (define x '(1 2 3))
> (car (cons 0 x))
  0
> (cdr (cons 0 x))
  (1 2 3)

方案列表实际上只是由这个公式递归定义的

  1. 列表是一对数据和一个列表
  2. '()是一个列表。(真的这完全是武断的,可以是任何东西,'()只是一个非常强大的传统)

这是一张漂亮的照片。

于 2013-04-06T09:26:39.293 回答
0

你仍然可以用cons它来做。

(cons 'x '(a b c d))   ; => (x a b c d)
于 2013-04-06T09:26:01.360 回答