【问题标题】:Iterating in Clojure over vectors在 Clojure 中对向量进行迭代
【发布时间】:2013-11-23 11:32:45
【问题描述】:

给定一个向量,或者可能是嵌套向量,如何将 Clojure 中的函数在向量(嵌套向量)上迭代 n 次?此外,如何将每一级迭代输出到一个向量中?其中输出向量从初始条件开始,即输入向量(嵌套向量),然后是后续的迭代。

【问题讨论】:

    标签: clojure clojure-contrib


    【解决方案1】:

    我想你想要的是iterate。它返回一个惰性的迭代序列,从输入开始。所以,例如:

    (def init (range 10))
    
    (take 3 (iterate #(map inc %) init)) 
    ;; gives ((0 1 2 3 4 5 6 7 8 9) (1 2 3 4 5 6 7 8 9 10) (2 3 4 5 6 7 8 9 10 11))
    

    【讨论】:

    • 这怎么能变成通用函数呢?我之前尝试过类似的方法,用 f 替换 inc,用 n 替换 3,用 a 替换 init。所以,我正在输入 [a n f]。
    • @Alex:听起来你已经明白了。你有什么问题?
    猜你喜欢
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 2016-05-11
    • 2018-08-15
    相关资源
    最近更新 更多