Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/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
Function Clojure:如何使用匿名函数的映射?_Function_Clojure - Fatal编程技术网

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

Function Clojure:如何使用匿名函数的映射?,function,clojure,Function,Clojure,我希望(系统/出口0)仅在总共检测到第二个“and”时调用,而不是在之前。我该怎么做呢?将函数映射到数据以进行转换,这是正确的做法。有两种方法可以获得您想要的: 不要使用map,而是使用reduce。Reduce用于随着时间的推移建立状态。因此,您可以将其简化为一个表达式,每次遇到和时,您都会查看正在生成的结果中是否已经存在和,如果该和已经存在,请调用出口 让您映射到输入的函数只做一件事,将单个项转换为更有意义的项。然后,一旦完成,将该结果传递给第二个函数,该函数检查是否该退出 赋予每一件事情一

我希望(系统/出口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)
    )