Scheme 计划中的原子是什么? 可以请人解释或链接我的任何有用的资源(我在谷歌上找不到任何线索),这可以帮助我理解原子是什么。
现在我们考虑一个原子,它不是一对对而不是空的元素。这包括:Scheme 计划中的原子是什么? 可以请人解释或链接我的任何有用的资源(我在谷歌上找不到任何线索),这可以帮助我理解原子是什么。,scheme,Scheme,现在我们考虑一个原子,它不是一对对而不是空的元素。这包括: 数字 弦 象征 布尔人 人物 从《小阴谋家》一书中摘取的以下步骤最能说明这一点: (define atom? (lambda (x) (and (not (pair? x)) (not (null? x))))) 一些作者(麦卡锡和弗里德曼/费莱森等人)使用术语“原子”来指代不是“反对”对的数据。我声称,这些天来,你更有可能将其倒置,并测试“缺点”-罩而不是“原子”-罩。“原子”一词在哪里使用?“原子”不是一个非常有用
- 数字
- 弦
- 象征
- 布尔人
- 人物
(define atom?
(lambda (x)
(and (not (pair? x)) (not (null? x)))))
一些作者(麦卡锡和弗里德曼/费莱森等人)使用术语“原子”来指代不是“反对”对的数据。我声称,这些天来,你更有可能将其倒置,并测试“缺点”-罩而不是“原子”-罩。“原子”一词在哪里使用?“原子”不是一个非常有用的概念。向量是原子吗?我认为它不是,因为它可以包含其他“原子”,就像一对。还有记录类型、SRFI-4向量(向量非常接近字符串,但在概念上仍然由数字组成,即“原子”)等。在小模式的上下文中,它是有意义的,因为它只涉及符号、列表和过程对象(但非常间接)。空列表()被认为是原子?顺便说一句,chicken scheme内置的
(atom?'())
返回true。根据上面的定义no,空列表不是atom。不要在这上面花费太多时间,“atom”概念在现实生活中不是很有用,它更多的是一个学术概念。atom
来自最初的LISP文章,当时有两种数据类型。它要么是一对犯人,要么是一个符号nil
是一个符号,所以它是一个原子,但Scheme将布尔值#f
、符号nil
和空列表'()
分开,它可以以任何方式运行,最终都不是一个原子。在我的Lisp Zozotez中,我用s
来区分两种类型的符号和配对,并且具有相同的功能。现代方案/CL代码应使用pair?
/consp
和null?
/endp