Clojure 遞歸

2018-12-23 18:04 更新

我們已經在前面的主題中看到了recur語句,而'for'循環(huán)有點像一個循環(huán),recur是Clojure中的一個真正的循環(huán)。

如果你有編程背景,你可能聽說過尾遞歸,這是功能語言的一個主要特點。 這個循環(huán)特殊形式是實現(xiàn)尾遞歸的形式。 如“尾遞歸”一詞所示,recur必須在尾部位置調用。 換句話說,recur必須是最后一個要評估的東西。

recur語句的最簡單的例子在'for'循環(huán)中使用。 在以下示例中,recur語句用于更改變量“i”的值,并將變量的值反饋回循環(huán)表達式。

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

輸出

以上示例輸出以下結果:

0
1
2
3
4

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號