评论者:petterik
摘要
我认为应该调查是否有一个具有相同效果的更小的补丁。我会看看我能做什么!
目标
在问题已分类后,尽量减小补丁的大小。
问题
some
需要实现reduced
以在reduce
中停止降低过程。clojure.core
中有两个reduce实现,即reduce
和reduce1
,其中reduce
实现reduced
而reduce1
则不实现。将some
、reduce1
和/或reduce
的组合放置在某种位置,使some
能够访问实现reduced
的reduce函数。
尝试通过(declare reduce)
声明reduce
,但似乎没有成功(将再次验证这种方法)。
旧方法
some
在位置上位于reduce
之上,因此无法访问,重点关注让reduce1
实现reduced
。这需要移动deref、deref-future和其他几个,导致一个相当大的补丁。
新方法
通过以下方式之一最小化补丁大小:
1a. 将some
(以及every?
)移动到reduce
下方。
1b. 将some
(以及every?
)向下移动,并将reduce
向上移动。
1c. 将reduce
移动到some
(以及every?
)上方。
2. 创建类似于reduce的some
和some1
,其中基于reduce的some
将在reduce
下方。
3. ?
我不是#2的粉丝,创建更多像reduce1
那样的函数副本。我希望能通过#1x得到一个小的补丁。