Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure计算惰性序列_Clojure_Lazy Sequences - Fatal编程技术网

Clojure计算惰性序列

Clojure计算惰性序列,clojure,lazy-sequences,Clojure,Lazy Sequences,嗨,我需要从stringify函数返回字符串,但目前我得到了lazy seq。我不知道如何评估懒惰的seq 所以我需要的是像这样的链式呼叫: (println“格式化:”(fmt(stringify m))) concat在seqs上运行,而不是在字符串上运行。它处理字符串,但将其视为字符序列。它可以通过clojure.string/join实现为字符串 用(clojure.string/join”“res)替换stringify函数中的最后一条语句res,应该可以做到这一点。但是,您可以从一开

嗨,我需要从
stringify
函数返回字符串,但目前我得到了lazy seq。我不知道如何评估懒惰的seq

所以我需要的是像这样的链式呼叫:
(println“格式化:”(fmt(stringify m)))


concat
seq
s上运行,而不是在字符串上运行。它处理字符串,但将其视为字符序列。它可以通过
clojure.string/join
实现为字符串


(clojure.string/join”“res)
替换stringify函数中的最后一条语句
res
,应该可以做到这一点。但是,您可以从一开始就使用
reduce kv
构建字符串,使用
join
而不是
concat
。您可以简化为任何内容,而不仅仅是集合/序列。

处理字符串时,只需使用
str
进行串联:

(concat acc s))         => (str acc s)
(concat acc ["+" s])    => (apply str [acc "+" s])  ; note moved `[`
示例:

=> (str "abc" "def")
"abcdef"

=> (apply str ["abc"  "de" "fgh"] )
"abcdefgh"

=> (clojure.string/join ["abc"  "de" "fgh"] )  ; like `(apply str...)`

我会考虑使用<代码> Culjule.String/String < /Cord>代替java互操作和<代码>。
=> (str "abc" "def")
"abcdef"

=> (apply str ["abc"  "de" "fgh"] )
"abcdefgh"

=> (clojure.string/join ["abc"  "de" "fgh"] )  ; like `(apply str...)`