Types 此图能否说明R5RS方案基本数据类型之间的关系?
我试图画一个图表来描述R5RS方案基本数据类型之间的关系,以便Types 此图能否说明R5RS方案基本数据类型之间的关系?,types,scheme,Types,Scheme,我试图画一个图表来描述R5RS方案基本数据类型之间的关系,以便 a) 当我试图排除一些特殊情况时,提醒自己 b) 与其他人分享,如果他们感兴趣的话 但是我不确定是否存在任何误解/非标准术语,或者是否有更好的在线图表来说明相同的想法 谢谢你的帮助 在接受了@ChrisJester Young的建议后,我重新绘制了图表,希望这次我能接近它。:) 修订2 我认为,如果使用外部表示而不是代码片段,就不会那么容易混淆了。然后你就可以取消所有的引用 基本上,点对的外部表示是(foo.bar),其
- a) 当我试图排除一些特殊情况时,提醒自己李>
- b) 与其他人分享,如果他们感兴趣的话
在接受了@ChrisJester Young的建议后,我重新绘制了图表,希望这次我能接近它。:)
修订2
我认为,如果使用外部表示而不是代码片段,就不会那么容易混淆了。然后你就可以取消所有的引用 基本上,点对的外部表示是
(foo.bar)
,其中foo
位于车槽中,bar
位于点对的cdr槽中
最重要的是,你有列表。列表有三种:正确的、不正确的和循环的
适当的列表是:
- 空列表或列表结束特殊对象,
,或()
- 将cdr插槽设置为另一个正确列表的虚线对
(1234)
(与(1234.()相同)
)
不正确的列表是:
- 既不是点对也不是空列表的对象
对象,或()
- 将cdr插槽设置为另一个不正确列表的虚线对
(1234)
通告名单如下:
- 一个点对,当追踪连续的CDR时,您永远不会到达一个非点对对象
示例:
#0=(1234.#0#)
,(12.#1=(34.#1#))
我可以理解使用“外部表示”而不是“代码片段”,它的变化更少,让我把重点放在输出上。至于“不正确的列表”,您的定义似乎暗示像符号这样的原子数据类型,数字或字符串可以归类为不正确的列表类别,我的理解正确吗?到目前为止,我还没有阅读或使用任何循环列表。。。谢谢你的解释。是的,原子(空列表除外)确实是不正确列表的基本情况。您可以使用'scircularlist
函数或'sreadwithsharedstructure
创建循环列表!在绿色框中,您应该说“其cdr是正确列表的虚线对”。