【问题标题】:Returning a list from a function in clojure从 clojure 中的函数返回列表
【发布时间】:2018-03-29 04:02:04
【问题描述】:

我想从 clojure 函数返回一个列表。我怎么做。我尝试了以下方法:

(lst val)

这会失败,因为 lst 不是 IFn

'(lst val)

这将返回两个符号 lstval 的列表。我想要的是返回一个包含lstval 值的列表。我该怎么做?

【问题讨论】:

  • 除了答案,还可以用下面的方法来做一个列表:`(~a ~b)(注意第一个字符不是引号,而是语法引号:`。这样你可以将其他序列拼接到列表中:(let [a 1 b 2 c [:a :b :c]] `(~a ~@c ~b)) => (1 :a :b :c 2)

标签: list function clojure return


【解决方案1】:

对于列表,只需使用list

(list lst val)

或者,除非你真的需要一个列表,否则你可以只返回一个包含项目的向量:

[lst val]

如果您只是退回一对物品,我个人会选择前者,虽然超出了可读性,但在这种情况下并不重要。

【讨论】:

    猜你喜欢
    • 2013-02-25
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多