美文网首页Lisp
[译] Lisp之根源(六)

[译] Lisp之根源(六)

作者: 日更专用小马甲 | 来源:发表于2019-05-05 19:39 被阅读0次
  1. (quota x)返回x。为了可读性,我们把(quota x)记为'x(quota意味着引用)。
> (quota a)
a

> 'a
a

> (quota (a b c))
(a b c)
  1. (atom x),当x是一个原子或者空列表时,返回原子t,否则返回()。在Lisp中,通常用原子t代表真用空列表代表假。
(atom 'a)
t

(atom '(a b c))
()

(atom '())
t

既然我们有了一个参数会被求值的操作符,那么就可以展示quota(引用)是如何使用的。通过引用一个列表,可以避免列表被求值。如果一个没有被引用的列表,作为参数,传递给一个类似atom这样的操作符,就会被视作为代码:

> (atom '(atom a))
()

这和英语中我们使用引用的方式相同。剑桥是一个位于马塞诸塞州,拥有90000人口的小镇。“剑桥”(Cambridge)是一个包含了9个字母的单词。

相关文章

  • [译] Lisp之根源(六)

    (quota x)返回x。为了可读性,我们把(quota x)记为'x(quota意味着引用)。 (atom x)...

  • [译] Lisp之根源(十四)

    偶然的,我们看到了怎样定义cond表达式的缺省子句。一个子句,如果第一个元素是't,那么求值时总是为true,因此...

  • [译] Lisp之根源(十二)

    有另外一个记号使得函数可以提及它本身,因此提供了一个方便定义递归函数的方式。这个记号的形式如下: (它)表示一个像...

  • [译] Lisp之根源(十五)

    既然我们有了一种描述函数的方法,我们在7个基础操作符的基础上定义一些新函数。首先,我们会定义一些通用函数的简要记法...

  • [译] Lisp之根源(十三)

    假设我们想要定义一个函数(sub x y z),它代表的含义是:以一个表达式x,一个原子y,一个列表z为参数。并返...

  • [译] Lisp之根源(十)

    2. 函数的表示 接下来,我们定义一套表示函数的符号。函数形如(lambda (p1 ... pn) e),其中p...

  • [译] Lisp之根源(十一)

    如果一个表达式的形式如下:第一个元素是一个原子f并且它不是原始操作符。 译者注,这里的表达式指的是函数定义(lam...

  • [译] Lisp之根源(十六)

    同样,我们用(list e1 ... en)代表(cons e1 ... (cons en '()) ... ) ...

  • [译] Lisp之根源(一)

    1960年,约翰·麦卡锡发表了一篇意义非凡的论文。其价值之于编程,犹如欧基里德的《几何原本》之于几何学。论文展示了...

  • [译] Lisp之根源(五)

    在数学中,表达式1+1的值为2。合法的Lisp表达式也有值。如果一个表达式e产生了一个值v,我们说e返回了v。我们...

网友评论

    本文标题:[译] Lisp之根源(六)

    本文链接:https://www.haomeiwen.com/subject/rfqkoqtx.html