在我的 SICP 研究期间,我遇到了一个非常有趣的问题:数据实际上意味着什么?这本书给出了以下定义:
通常,我们可以认为数据是由选择器和构造函数的一些集合定义的,以及这些 必须履行程序才能成为有效的代表。这种观点不仅可以用来定义有理数之类的“高级”数据对象,还可以用来定义低级对象。
我的问题是,由于今天我们倾向于将数据视为不同类型的对象,例如字符串,数字,表,JSON和XML表示等,因此我们处于抽象水平,而我们并没有真正想到数据。因此,我想知道SICP定义是否已过时,或者我们仍然可以按照此处描述的相同方式查看数据。
答案 0 :(得分:2)
它仍然有意义。它说基础表示并不重要。例如,使用高级语言的字符串;字符串是表示为以UTF-8编码的连续字节数组,还是表示为UTF-32的32位字的连续数组,甚至表示为链表或绳索(无关紧要的数据)都没有关系结构)。只要找到其长度并检查每个字符,它就是一个字符串数据。 (性能可能有所不同。)对于数据连接而言,唯一重要的是一致的API。