【发布时间】:2015-02-10 12:25:01
【问题描述】:
我想知道是否存在可用于 Logo 语言的一流字典数据结构的实现?我在 UCB 徽标或 FMS 徽标的文档中没有看到可用的。我看到有属性列表,但它们似乎不是一流的,而且看起来它们是线性查找关联列表。我正在寻找基于哈希或树的东西。似乎那里有很多历史标志,也许有人已经实现了这样的东西。另外,如果有人知道徽标代码的存储库,我将不胜感激指针(即徽标的 CPAN)。
【问题讨论】:
-
请定义您所说的一流。这不是我熟悉的术语,或者至少在技术意义上不是。 “一流”是指实现具有接近 O(1) 查找时间的哈希表吗?
-
您打算为表中的键使用什么类型的数据?数字?字符串?
-
对于第一类,能够创建新的匿名字典并将其传递给过程。 en.wikipedia.org/wiki/First-class_citizen 与 ucbLogo 和 FMSLogo 中的属性列表进行比较和对比:fmslogo.sourceforge.net/manual/property-lists.html
-
顺便说一句,我打算建议,如果没有使用数组来创建自己的哈希表,这在技术上应该是可行的,您可以动态创建名称为
"MyTable_MyKey的变量,因为解释器可能将其变量存储/查找实现为某种哈希表。但在推荐之前,我下载了 UCBLogo 源来查看它,在我看来,变量可能只是存储在链表中。不过,我可能错了,因为我在导航代码时遇到了一点困难。 -
为了不重新发明轮子,我只是想知道是否有人在 Logo 中有一个现有的字典实现,它不依赖于任何解释器的内部。当然,我们可以(在语言中)创建一组过程来实现字典接口,使用列表作为树/特里树,或者使用数组作为哈希表。
标签: dictionary ucb-logo logo-lang