繁体   English   中英

Clojure:如何使用带有匿名函数的映射?

[英]Clojure: How to use Mapping with an Anonymous Function?

 (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)
)

我想(系统/退出0)第二“和”在检测而不是之前只有当被调用。 我该怎么做呢?

通过在数据上映射函数以对其进行转换,您走在正确的轨道上。 有几种方法可以获取您正在寻找的内容:

  1. 不要使用map,而使用reduce。 Reduce 是为了随着时间的推移建立状态。 所以,你可以减少其整合到表达,并在每次遇到一个时间and你看看是否已经有一个and你正在构建的结果,如果and已经存在,调用exit。
  2. 让您在输入上映射的函数只做一件事,将单个项目转换为更有意义的事情。 然后一旦完成,将该结果传递给第二个函数,该函数检查是否该退出了。

为每件事赋予一个责任使代码更容易编写,并且编写后记既高效又容易。 当您稍后回来处理代码时,这对您来说也容易得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM