2024 Clojure状态调查!中分享您的想法。

欢迎!请查看关于页面以获取有关此操作的一些更多信息。

0
集合

从理论角度看,Map和一元函数之间并没有真正区别

您对函数实现Map接口有何看法?这将有用吗?如果经过思考,你们决定不采用这种方法,为什么不?我很乐意了解大家的想法

3 个答案

+1

精选答案
 
最佳答案

将事物做成函数有很多实用性,因为这主要是“可以调用的事物”的主要抽象。将函数转换为映射(数据)的实用性就小得多。你无法像处理数据那样轻松地读取/打印它们,也无法将它们与其他数据组合,等等。此外,尽管所有映射都可以作为查找函数调用,但并非所有函数都可以作为映射调用,因此这只能应用于有限的函数集。因此,我认为这并不实用,我看不到从中获得的任何好处。

+1

你试图解决什么问题?

实际上并没有试图解决问题
我只是想了解符号和关键词如何作为函数使用,它们会对传递给它们的第二个参数(一个映射)进行查找。

所以我一直想知道,一个函数是否也是一种映射,所以(:key some-fn)应该可以工作,但是没关系,因为我们总是可以写成(some-fn :key)

我认为关键词/符号作为函数只是一个便利?
但是我会考虑它是否在某种程度上是有帮助的
另外,请注意,您可以说(some-map "a-key"),但不能说("a-key" some-map),您可以说(some-vector 42),但不能说(42 some-vector) -- 这不是对称的(也没有理由要对称)。许多可以作为关联事物键/索引的东西在第一个位置作为函数使用时可能不可用。
完全说得通 :) 我不是语言设计者,所以只是在尝试理解思维过程
+1

...