我喜欢节省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 互操作项,这样我就不必写出“写tt,hyyy,e,r,r,e,e”尤她ieni ooff tt hh ew,hf, s,sssts,ts,s,s,rehearing”。