存在什么基于哈希/地图的编程语言?

时间:2010-04-27 16:16:12

标签: programming-languages

很像lisp通常被认为是基于列表的编程语言,哪些语言被认为是基于地图的?

我记得几年前读过一篇关于它的内容,但是不能再找到它的参考。它看起来像是:

[if:test then:<code> else:<more code>]

编辑:  以及引用代码块的更多地方,这些代码块将被条件评估。以这种方式,如果/ cond和其他人不是特殊形式,因为它们在lisp / scheme中。

上面的语法应该是map / dictionary,就像lisp的语法就像列表一样。

如果是具有test值的键。

然后将是一个值为。

的键

...

6 个答案:

答案 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]]

不幸的是,除了很久以前的两个blog articles之外,似乎还没有太多事情发生了。

答案 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)

这不是你所描述的,它并不是真正基于哈希的,但你的例子看起来很像Smalltalk

test
  ifTrue: [code]
  ifFalse: [more code]

更新

你的编辑,“还有更多的引用代码块会被条件评估。以这种方式,如果/ cond和其他不是特殊形式,因为它们在lisp / scheme中”,建议我Tcl

在Tcl中,{}只引用一个字符串。 “If”是一个评估测试的命令,然后根据该结果选择性地评估另一个参数。

我不会将Tcl称为基于哈希的语言,尽管哈希在Tcl中有点特殊。