【发布时间】:2018-08-20 05:54:39
【问题描述】:
您好,我需要从 stringify 函数返回字符串,但目前我正在获取惰性序列。无法理解如何评估惰性序列。
所以我需要的是这样的链式调用:
(println "Formated: " (fmt (stringify m)))
(defn stringify [m]
"Construct string expression"
(let [res (reduce-kv (fn [acc k v]
(let [s (str/join "" [v (name k)])]
(if (pos? v)
(if (empty? acc)
(concat acc ["+" s])
(concat acc s))
(concat acc s))
))
"" m)]
res))
(defn fmt [s]
"Apply formating rules"
(-> s
(.replaceAll "([+-])" " $1 ")
(println)))
【问题讨论】:
-
我会考虑使用
clojure.string/replace而不是Java interop 和.replaceAll。