我喜欢省下 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”等,以类似的方式组合seq及其嵌入的测试。
在所有这些消极之后,我想说我如果有人愿意为我节省按键,我将喜欢一个Java var-args互操作,它不会让我写出“maaaakkkkeee aaannnn arrraaaayyy ooffff ttthhhee tttthhiiiinnngggsss”。