相关疑难解决方法(0)

Clojure:尾部位置究竟是什么?

什么是"尾部位置"的精确定义,以便在clojure中重复出现.我认为这将是循环S表达式中的最后一项,但在下面的例子中,在我看来,以(if ...)开头的S-Expression处于尾部位置即([LOOP KEYWORD] [BINDING STATMENTS] [IF声明]).

(= __
  (loop [x 5
         result []]
    (if (> x 0)
      (recur (dec x) (conj result (+ 2 x)))
      result)))
Run Code Online (Sandbox Code Playgroud)

代码取自http://www.4clojure.com/problem/68

密切相关的问题:如何在Clojure中调用if条件中的recur?

clojure

31
推荐指数
2
解决办法
5797
查看次数

我自己的插入功能作为练习

我正在解决一个4Clojure练习,这个练习要求你建立自己的插入功能.我的答案如下:

(fn my-interpose 
  ([separator input] (my-interpose separator input nil))
  ([separator input result] 
    (if 
      (empty? input) 
      (reverse (rest result))
      (my-interpose separator (rest input) (cons separator (cons (first input) result))))))
Run Code Online (Sandbox Code Playgroud)

在读Clojure书时,我正在做这些练习来学习语言.我想知道有关我的语言经验的人的代码的意见.我可以避免反向通话吗?是否有任何惯例我很难用这种代码打破?

clojure

3
推荐指数
1
解决办法
584
查看次数

标签 统计

clojure ×2