我喜欢节省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。
在这所有的消极之后,我想说,如果有人想为我节省一些按键,我将非常乐意有一个Java var-args的互操作,这样我就不必写出“maaaakkkkeee aaannnn arrraaaayyy ooffff ttthhiiiinnngggsss”。