vector - 将向量连接到普通关键字或关键字向量的惯用方法

标签 vector clojure keyword

寻找最简单或最惯用的方式来处理可能是简单关键字或关键字向量的输入。也许是一个将普通关键字转换为列表的函数。尽量避免 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’ .

关于vector - 将向量连接到普通关键字或关键字向量的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32727708/

相关文章:

c++ - 在一行中输入多个字符串到一个 vector 中? (C++)

c++ - 我如何制作指向动态分配对象的指针 vector ?

unit-testing - 如何对 clojure.core.async go 宏进行单元测试?

java - 无法让 ant 工作,尝试安装 Clojure

clojure - 在 clojure 中打印符号列表

elasticsearch - elasticsearch从文本中提取关键字

internet-explorer - OpenCart - 如果填写产品 SEO 关键字,OpenCart 在 IE 上崩溃

c++ - std::vector 异常是中立的吗?

javascript - 检查字符串是否包含关键字数组

c++ - vector push_back导致未处理的异常