Clojure - Đệ quy

Chúng ta đã thấy câu lệnh lặp lại trong một chủ đề trước đó và trong khi vòng lặp 'for' giống như một vòng lặp, recur là một vòng lặp thực sự trong Clojure.

Nếu bạn có kiến ​​thức nền tảng về lập trình, bạn có thể đã nghe nói về đệ quy đuôi, đây là một tính năng chính của các ngôn ngữ hàm. Dạng đặc biệt định kỳ này là dạng thực hiện đệ quy đuôi. Như từ “đệ quy đuôi” chỉ ra, định kỳ phải được gọi ở vị trí đuôi. Nói cách khác, định kỳ phải là điều cuối cùng được đánh giá.

Ví dụ đơn giản nhất về câu lệnh lặp được sử dụng trong vòng lặp 'for'. Trong ví dụ sau, câu lệnh lặp được sử dụng để thay đổi giá trị của biến 'i' và cung cấp giá trị của biến trở lại biểu thức vòng lặp.

Thí 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)

Đầu ra

Chương trình trên tạo ra kết quả sau.

0
1
2
3
4