我喜欢节省 6 个快捷键,在我看来,“fn”取代“function”或“lambda”完全值得这个入门价格,但我预见 if-seq/when-seq 会有一些成本。主要是侵蚀 Clojure 的一些优点。
我喜欢 seq 是一个在全上下文中出现的简单惯用说法。
我喜欢在考虑条件逻辑时不必担心复杂的转换。
我喜欢这种外观(即使它是小错误的),即序列库与语言是分开的。
我对 Clojure 的现有真值特性感到敬畏。
为了改善我对重构的抱怨,“if-seq”可以称为“if-let-seq”,并添加一个“let-seq”,这样添加/删除一个条件就只需要“if-”或“when-”前缀。但那样你就会失去 6 个节省的快捷键中的 4 个,并且忘记了 letfn 的经验教训,还走上了通向一个名为“-seq”的形式的替代宇宙的滑梯之路。
接下来,“some-seq”,“remove-seq”,“take-while-seq”等,将按类似方式将 seq 与它们的嵌入测试组合起来。
在我所有的负面评论之后,我将说,如果有人急于为我节省一些快捷键,我会乐于看到一个不让我写出“ lots off ”的 Java var-args 互操作。