gpt4 book ai didi

clojure - clojure 映射和关键字如何成为一个函数

转载 作者:行者123 更新时间:2023-12-02 21:27:15 24 4
gpt4 key购买 nike

在clojure中,您可以使用 map 数据结构或关键字作为函数来查找 map 。

(let [m {:foo "bar"}]
(get m :foo) ; -> "bar"
(:foo m) ; -> "bar"
(m :foo)) ; -> "bar"

所有这些表达式都返回值“bar”。在实现方面,如何使用map或关键字作为函数?这是 clojure 解释器中内置的特殊情况,还是我可以用该语言重新创建的东西?幕后到底发生了什么?

最佳答案

这一切都是通过底层的普通 java 完成的。

有一个名为 iFn 的接口(interface),Clojure 中任何想要作为函数调用的东西都可以实现它。当被调用时,由该东西决定做什么。

  • 关键字选择在作为第一个参数传递的集合中自行查找。
  • 映射选择查找作为自身键传递的参数。
  • 符号也会在集合中自行查找。很像关键字。
  • 变量使用它们传递的任何参数对它们包含的任何函数进行函数调用。他们使用相同的界面来完成此操作。

关于clojure - clojure 映射和关键字如何成为一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43861384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com