很像lisp通常被认为是基于列表的编程语言,哪些语言被认为是基于地图的?
我记得几年前读过一篇关于它的内容,但是不能再找到它的参考。它看起来像是:
[if:test then:<code> else:<more code>]
编辑: 以及引用代码块的更多地方,这些代码块将被条件评估。以这种方式,如果/ cond和其他人不是特殊形式,因为它们在lisp / scheme中。
上面的语法应该是map / dictionary,就像lisp的语法就像列表一样。
如果是具有test值的键。
然后将是一个值为。
的键...
答案 0 :(得分:6)
这看起来非常像MISC,一个懒惰的Lisp,带有地图而不是列表作为基本数据类型。 (它也很懒,有元数据的深度集成(类似于Clojure)和其他一些东西,但它仍然是一个很好的Lisp:功能性,同性恋,宏,实现为元气体解释器,所有好东西。)< / p>
以下是blog的一些代码示例:
[if [> 5 10] then:[+ 5 10] else:[- 5 10]]
[let '[square:[lambda '[x:1] '[* x x]]]
'[square 12]
]
[take 20 [numbers from:0]]
答案 1 :(得分:4)
我也建议Lua。整个语言基于表 - 对象是表,它们的定义是表,变量在表中,表定义范围等等 - 其中表是散列映射。
答案 2 :(得分:3)
显而易见的答案是lua - 它大量使用table
,而表几乎是一个哈希映射(一个关联数组)。它的语法看起来并不像你上面所示。
上面的内容看起来有点像Smalltalk,它的库中肯定包含基于散列的容器,典型的实现在内部使用散列表来查找对象应如何响应特定消息。尽管如此,将其称为“基于哈希/地图”似乎有点牵强,至少对我而言。
答案 3 :(得分:2)
剪切的帖子看起来非常像Objective-C,虽然在实现中不是基于map的,但只有语法看起来像那样。
我理解的一种语言是Python,它使用的是字典。基本上Python(用我自己的话说)是一个非常大的字典,但语法并没有完全反映出来。
这是我的来源(虽然可能有些混乱)
http://code.google.com/edu/languages/index.html#_python_understanding
答案 4 :(得分:2)
MUMPS编程语言有一个基本数据类型,本质上是一个哈希/映射,但要小心学习MUMPS。有龙......
答案 5 :(得分:1)