Clojure 以下流程的更好习惯用法
我有一段代码如下-Clojure 以下流程的更好习惯用法,clojure,Clojure,我有一段代码如下- (future ( (comp (fn [data] (service/parse srv data)) (fn [] (service/fetch srv)) ))) 基本上有两个函数fetch和parse,我以后必须调用它们。fetch的结果由parse函数使用。不知何故,上面
(future
(
(comp
(fn [data]
(service/parse srv data))
(fn []
(service/fetch srv))
)))
基本上有两个函数fetch
和parse
,我以后必须调用它们。fetch
的结果由parse
函数使用。不知何故,上面的内容似乎有些冗长,因为我必须创建匿名函数,这样我才能comp
它们,然后使用额外的()来执行comped函数
有没有更好的方法来实现上述目标?我假设
srv
是在Var中定义的某个url或其他对象?你的代码不清楚。不管怎样,等价物是:
(future
(let [data (service/fetch srv)]
(service/parse srv data)))
或者干脆
(future
(service/parse srv (service/fetch srv)))
我希望您可以重构
解析
,这样它就不依赖于srv
,但我没有足够的信息来确定您的问题。我假设srv
是某个url或其他对象在变量中定义的吗?你的代码不清楚。不管怎样,等价物是:
(future
(let [data (service/fetch srv)]
(service/parse srv data)))
(future
(->> (service/fetch srv)
(service/parse srv)))
或者干脆
(future
(service/parse srv (service/fetch srv)))
我希望您可以重构解析
,这样它就不会依赖于srv
,但我没有足够的信息来确定您的问题
(future
(->> (service/fetch srv)
(service/parse srv)))