当前位置: 首页 > 文档资料 > Clojure 中文教程 >

递归

优质
小牛编辑
134浏览
2023-12-01

我们在前面的主题中看到了recur语句,而'for'循环有点像循环, recur是Clojure中的一个真正的循环。

如果你有编程背景,你可能听说过尾递归,这是函数式语言的一个主要特性。 这种复现特殊形式是实现尾递归的形式。 正如单词“tail recursion”所示,必须在尾部位置调用recur。 换句话说,复发必须是最后评估的东西。

最简单的recur语句示例在'for'循环中使用。 在以下示例中,recur语句用于更改变量“i”的值,并将变量的值反馈回循环表达式。

例子 (Example)

(ns clojure.examples.hello
   (:gen-class))
;; This program displays Hello World
(defn Example []
   (loop [i 0]
      (when (< i 5)
      (println i)
      (recur (inc i)))))
(Example)

输出 (Output)

上述程序产生以下输出。

0
1
2
3
4