【发布时间】:2012-09-26 20:26:05
【问题描述】:
谁能解释或链接我到任何有用的资源(我在谷歌上找不到任何线程)可以帮助我理解原子是什么。
【问题讨论】:
-
最好使用first class values这个词。
标签: scheme
谁能解释或链接我到任何有用的资源(我在谷歌上找不到任何线程)可以帮助我理解原子是什么。
【问题讨论】:
标签: scheme
如今,我们认为 atom 元素不是 cons-pair 且不为 null。其中包括:
最好用以下过程来表达,摘自《小计划者》一书:
(define atom?
(lambda (x)
(and (not (pair? x)) (not (null? x)))))
【讨论】:
(atom? '()) 返回 true。
atom 来自原始 LISP 论文,当时有两种数据类型。它要么是一对缺点,要么是一个象征。 nil 是一个符号,所以它是一个原子,但 Scheme 将布尔值 #f、符号 nil 和空列表 '() 分开了,它可以走任何路,最终不是 atom .在我的 Lisp Zozotez 中,我有 s 作为区分符号和对这两种类型的一种方式,并且具有相同的功能。现代 Scheme/CL 代码应使用 pair?/consp 和 null?/endp
atom? 的实现不匹配。缺少程序。
一些作者(McCarthy 和 Friedman/Felleisen 等)使用术语“原子”来指代不是“缺点”对的数据。我声称这些天来,您更有可能将其反转,并测试“cons”-hood而不是“atom”-hood。您在哪里看到使用的术语?
【讨论】: