Function Clojure:如何使用匿名函数的映射?
我希望(系统/出口0)仅在总共检测到第二个“and”时调用,而不是在之前。我该怎么做呢?将函数映射到数据以进行转换,这是正确的做法。有两种方法可以获得您想要的:Function Clojure:如何使用匿名函数的映射?,function,clojure,Function,Clojure,我希望(系统/出口0)仅在总共检测到第二个“and”时调用,而不是在之前。我该怎么做呢?将函数映射到数据以进行转换,这是正确的做法。有两种方法可以获得您想要的: 不要使用map,而是使用reduce。Reduce用于随着时间的推移建立状态。因此,您可以将其简化为一个表达式,每次遇到和时,您都会查看正在生成的结果中是否已经存在和,如果该和已经存在,请调用出口 让您映射到输入的函数只做一件事,将单个项转换为更有意义的项。然后,一旦完成,将该结果传递给第二个函数,该函数检查是否该退出 赋予每一件事情一
和
时,您都会查看正在生成的结果中是否已经存在和
,如果该和
已经存在,请调用出口赋予每一件事情一个责任,使代码编写起来容易得多,并且在后记中编写它们是高效和简单的。当您稍后回来处理代码时,这对您来说也会容易得多 一,。不起作用,因为可能不止是“和”。这只是为了简单。关于2。我有一个函数,可以检查是否只有一个序列,并操纵最后一件事:(cond(不是任何?seq?total)(finalvaluation temp))。。。。。。。。。。然而,它仍然两次“调用”和“行”
(defn recurse
[temp total] ;total is: (and true true(and false))
(map (fn [i]
(cond
(seq? i) (println "");If total is not a single parenthesis (single sequence), recur until it is
(= i 'and) (System/exit 0) ;I want this to be called only when the **second** "and" is called
:else (println "This should never print I think")
))
idealreturn)
)