为什么(汽车''(ab))评价'引用?

 躺在地球上的熊 发布于 2023-01-11 02:53

我是初学者Scheme程序员,我想丰富我在函数式编程方面的知识.我在DrRacket IDE中编程.最近我发现了一些有趣的代码:

  (car ''(a b))

输出:

  'quote

任何人都可以解释我为什么以这种方式进行评估?

2 个回答
  • 这是因为'它的缩写(quote ...).所以,

    (car ''(a b))

    实际上是

    (car (quote (quote (a b))))

    评估结果为:

    'quote

    正如Josh在评论中指出的那样,实际结果只是quote和REPL打印的表达式可以quote在这种情况下评估'quote或者与上面看到的相同(quote quote).

    2023-01-11 03:20 回答
  • 请记住'x(对于任何表达式x)只是简写(quote x),所以这段代码:

    (car ''(a b))
    

    相当于这一个:

    (car (quote (quote (a b))))
    

    现在很容易看出你正在评估car一个如下所示的列表:

    '(quote (a b))
    

    哪个得到评估:

    (list 'quote (list 'a 'b))
    

    如果我们使用car上面的行,我们将得到符号quote,这正是您看到的打印结果.

    2023-01-11 03:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有