【发布时间】:2011-02-12 22:55:15
【问题描述】:
很像 lisp 通常被认为是一种基于列表的编程语言,哪些语言被认为是基于地图的?
我记得几年前读过一篇文章,但找不到参考。它看起来像:
[if:test then:<code> else:<more code>]
编辑: 以及更多引用的代码块,这些代码块将被条件评估。以这种方式,if/cond 和其他方式不会像在 lisp/scheme 中那样是特殊形式。
上面的语法应该是map/dictionary,就像lisp的语法是list一样。
if 是一个值为 test 的键。
then 将是一个值为 .
的键...
【问题讨论】:
-
请根据地图定义。
-
@zaf 基于关联数组的语言是否使事情更清晰?
-
至少在 Common Lisp 中,COND(像许多控制流结构一样)不是一种特殊形式:它是一个宏。
-
@Davorak 不是真的。我会检查答案以获得更多理解。
-
@zaf:该数据结构的其他名称是:关联数组或字典。在常规数组中,您有一个像
users[25] = "oscar"这样的索引,对吗?这将使用索引 25 将值“oscar”分配给users数组,好吗?在关联数组中,索引是另一个“对象”,例如users["name"] = "oscar",而不是使用索引,索引是“名称”。这非常方便。它们被称为关联数组,因为它们将一个值与另一个值相关联。它们被称为字典,因为键是 dict 条目,您将拥有一个更大的对象,即 def