`
报告者:wolfe.a.jason,2009年2月4日
请描述这个功能/更改。
将“keyset”添加到Clojure中;使APersistentMap的.keySet返回一个
IPersistentSet
这在小组中讨论过吗?如果是这样,请提供讨论链接:
讨论
http://groups.google.com/group/clojure/browse_thread/thread/66e708e477ae992f/ff3d8d588068b60e?hl=en#ff3d8d588068b60e
附上一个补丁。一些备注
我选择添加一个“keyset”函数,而不是更改现有的“keys”,
以避免破坏任何东西。
相应的 RT.keyset 函数只是对参数调用 .keySet。
我希望当传递一个(非Clojure)java.util.Map时“keyset”返回一个 IPersistentSet,但
由于上述论坛中提到的相同限制(Map接口不支持getKey()或entryAt()),这似乎在
亚线性时间内做不到 --
再次假设,“get”应该返回集合中的实际(相同的)键,而不仅仅是.equal键。
然后,我更改了APersistentMap的.keySet实现,以基本复制APersistentSet。
另一个更简洁的备选方案是扩展APersistentSet并重写.get方法,但这对
我来说有点紧张(因为如果APersistentSet更改这可能会破坏)。
无论如何,这是我为Clojure Java这边写的第一个补丁,我对约定和美学
还不够稳固,所以评论/问题/批评/修订请求都非常欢迎。
请求
jira
请登录或注册以添加评论。
请登录或注册以回答此问题。
`