【发布时间】:2015-09-22 22:03:50
【问题描述】:
寻找最简单或最惯用的方法来处理可能是简单关键字或关键字向量的输入。也许是一个将普通关键字转换为列表的函数。尽量避免使用 if 子句,也尽量避免过多的函数链接。
(defn togethr [v1]
(into [] (flatten (into [:a] (vector v1))))
(togethr :b)
; => [:a :b]
(togethr [:b :c])
; => [:a :b :c]
我在这里链接了 4 个函数调用,我怀疑有一种更简单(更惯用)的方法。
【问题讨论】:
-
Arthur 的答案是一个很好的答案,但是回到更广泛的上下文,有一个可能是关键字的参数,或者是一组关键字通常是一种反模式。更改调用代码以一致地传递向量关键字可能会更好。 Stuart Sierra 甚至为此创造了一个术语:‘heisenparameter’。
-
这是我一直在寻找的,但无法表达。虽然 Arthur 确实回答了我的问题,我非常感谢他花时间回答我的问题,但我很感谢你退后一步,引导我走上一条比直接给我要求的更好的道路!跨度>