Clojure 遞歸

2018-12-23 18:04 更新

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

如果你有編程背景,你可能聽(tīng)說(shuō)過(guò)尾遞歸,這是功能語(yǔ)言的一個(gè)主要特點(diǎn)。 這個(gè)循環(huán)特殊形式是實(shí)現(xiàn)尾遞歸的形式。 如“尾遞歸”一詞所示,recur必須在尾部位置調(diào)用。 換句話(huà)說(shuō),recur必須是最后一個(gè)要評(píng)估的東西。

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

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

輸出

以上示例輸出以下結(jié)果:

0
1
2
3
4

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)