Lisp / Scheme中的'(撇号)是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (90)

我在自学计划的第1小时1。不用说,我什么都不懂。所以我正在阅读The Little Schemer并使用这个东西:

http://sisc-scheme.org/sisc-online.php

作为口译员。

我需要'用于例如

(atom? 'turkey)

以避免“未定义的变量”错误。的',根据这本书,是Common Lisp的事情。

我有两个问题:

  1. 我上面提到的翻译是否很好?你能推荐另一个吗?我需要一个能与The Little Schemer合作的人
  2. 什么是'
提问于
用户回答回答于

表单'foo只是输入特殊表单的更快方式

(quote foo)

也就是说,“不要评价foo这个名称并将其替换为它的值;我的意思是foo的名字”。

我认为SISC对于探索TLS练习来说非常合适。

用户回答回答于

需要了解Scheme的基本评估规则。

第一

(atom? 'turkey)

该列表是一个函数应用程序,因此atom?被评估为一个函数。 'turkey是一个简短的符号(quote turkey)。评估(quote turkey)给出了符号turkey

接下来将该函数应用于该符号turkey并计算返回值。

第二

(atom? turkey)

我们再次有一个函数应用程序,atom?并被评估为一个函数。这一次turkey是一个变量。评估turkey给出了与之相关的价值 - 它究竟是什么。

那么这个函数就会应用到这个变量的值上turkey

概要

turkey是一个变量,它被评估为它的值。'turkey(quote turkey),它被评估为符号turkey

Scheme重用s表达式并用s表达式构建它的程序。这导致了问题,有时 turkey应该是一个变量,有时它应该是符号。这对初学者来说有点混乱。一段时间后,你会看到它背后的力量。

所属标签

可能回答问题的人

  • 女淘日记

    杭州吱吱吱科技 · 站长 (已认证)

    1 粉丝1 提问3 回答
  • 朝夕熊博客

    1 粉丝2 提问3 回答
  • 找虫虫

    6 粉丝0 提问2 回答
  • 无聊至极

    6 粉丝504 提问2 回答

扫码关注云+社区

领取腾讯云代金券