免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4290 | 回复: 1
打印 上一主题 下一主题

scheme quote 问题 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-09 23:50 |只看该作者 |倒序浏览
本帖最后由 Lispor 于 2010-12-09 23:54 编辑
  1. guile> (eq? 'x 'x)
  2. #t
  3. guile> (eq? '(+ x 1) '(+ x 1))
  4. #f
复制代码
这是为何,他们quote后,不都变成符号了嘛?

是不是只有 自求值表达式 quote后 才可以 eq?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2010-12-12 21:38 |只看该作者
知道了!!!
细想一下,其实挺好理解的
看一下代码就知道了:
  1. scheme@(guile-user)> (list? '(+ x 1))
  2. #t
  3. scheme@(guile-user)> (eq? '(+ x 1) '(+ x 1))
  4. #f
  5. scheme@(guile-user)> (equal? '(+ x 1) '(+ x 1))
  6. #t
复制代码
'(+ x 1) 其实就是一个列表,它就相当于 (list '+ 'x 1)
两个列表,他们的元素都相同(equal? 结果为 #t),但他们的地址不一样(eq? 结果为 #f)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP