我喜欢节省6个按键,在我看来,“fn”可以完全取代“function”或“lambda”,我预见到if-seq/when-seq可能会带来一些成本。主要是侵蚀Clojure的其他优点。
我喜欢seq是一个出现在所有上下文中的简单习惯用语。
我喜欢在考虑条件逻辑时不必担心复杂的转换。
我喜欢序列库与语言分离的外观(即便它有一点点错误)。
我对Clojure与真值相关的现有特性深感敬畏。
为了改进我对重构的抱怨,“if-seq”可以被命名为“if-let-seq”,并且可以添加一个“let-seq”,这样在添加或删除条件时只需涉及“if-”或“when-”前缀。但那样的话,你就失去了4个6个节省的按键,忘记了letfn的课程,并走向了一个拥有“-seq”命名形式的另一种形式的宇宙。
接下来,“some-seq”、“remove-seq”、“take-while-seq”等,同样可以与嵌入的测试一起组成序列。
在所有这些负面消息之后,我说说如果有人想为我节省一些按键,我将非常愿意有一个Java var-args互操作性,它不必让我写出“maaaakkkkeee aaannnn arrraaaayyy ooffff ttthhiiiinnngggsss”。