代码之家  ›  专栏  ›  技术社区  ›  Davorak

存在什么基于散列/映射的编程语言?

  •  2
  • Davorak  · 技术社区  · 16 年前

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

    我记得几年前读过一本,但再也找不到参考书了。它看起来像:

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

    编辑: 更多引用的代码块将被条件计算。在这种情况下,if/cond和其他函数不会像lisp/scheme中那样是特殊形式。

    上面的语法应该是map/dictionary-like,就像lisp的语法是list-like一样。

    if将是一个具有test值的键。

    然后是一个值为的键。

    6 回复  |  直到 16 年前
        1
  •  6
  •   Jörg W Mittag    16 年前

    MISC ,一个以映射代替列表作为基本数据类型的惰性Lisp(它也很懒惰,对元数据(类似于Clojure)和其他一些东西进行了深度集成,但它仍然是一个Lisp:函数式的、同形的、宏的、作为元循环解释器实现的,所有这些都是好东西。)

    下面是来自 blog :

    [if [> 5 10] then:[+ 5 10] else:[- 5 10]]
    
    [let '[square:[lambda '[x:1] '[* x x]]]
        '[square 12]
    ]
    
    [take 20 [numbers from:0]]
    

    博客 articles

        2
  •  4
  •   Puppy    16 年前

    我也建议卢阿。整个语言是以表为基础的-对象是表,它们的定义是表,变量在表中,表定义范围,等等-其中表是hashmap。

        3
  •  3
  •   Jerry Coffin    16 年前

    最明显的答案是lua——它使用 table 表实际上是一个哈希映射(一个关联数组)。不过,它的语法看起来与上面显示的不太一样。

    上面的内容看起来有点像Smalltalk,它的库中当然包含基于哈希的容器,典型的实现在内部使用哈希表来查找对象应该如何响应特定消息。尽管如此,称之为“基于散列/映射”似乎有点牵强,至少对我来说是这样。

        4
  •  2
  •   OscarRyz    16 年前

    你贴的截图看起来很像Objective-C,虽然在实现中不是基于映射的,只是语法看起来像那样。

    据我所知,大量使用字典的一种语言是Python。基本上Python(用我自己的话说)是一个非常大的字典,但是语法并不能完全反映这一点。

    这是我的来源(可能是困惑)

    http://code.google.com/edu/languages/index.html#_python_understanding

        5
  •  2
  •   Daniel DiPaolo    16 年前

    MUMPS 编程语言有一个基本数据类型,它本质上是一个散列/映射,但要小心学习腮腺炎。有龙。。。

        6
  •  1
  •   Ken    16 年前

    Smalltalk :

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

    更新:

    您的编辑”,以及更多引用的代码块,这些代码块将被条件计算。在这种情况下,if/cond和其他一些将不会像lisp/scheme中那样是特殊形式”,我建议 Tcl .