我喜欢省下 6 个按键,在我看来,“fn”取代“函数”或“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”。