Lisp - 循环构造



loop 构造是 LISP 提供的最简单的迭代形式。它的最简单形式允许你重复执行一些语句,直到找到 return 语句。

它具有以下语法 −

(loop (s-expressions))

示例

创建一个名为 main.lisp 的新源代码文件,并在其中键入以下代码。

main.lisp

; set a as 10
(setq a 10)
; start a loop
(loop 
   ; increment a by 1
   (setq a (+ a 1))
   ; print a
   (write a)
   ; terminate printing
   (terpri)
   ; return a if a becomes greater than 17
   (when (> a 17) (return a))
)

输出

执行代码时,将返回以下结果 −

11
12
13
14
15
16
17
18

请注意,如果没有 return 语句,loop 宏将产生一个无限循环。

示例

更新名为 main.lisp 的源代码文件,并在其中键入以下代码。在此示例中,我们按降序打印数字。

main.lisp

; set a as 20
(setq a 20)
; start the loop
(loop 
   ; decrement a by 1
   (setq a (- a 1))
   ; print a
   (write a)
   ; terminate printing
   (terpri)
   ; if a becomes less than 10, return the same.
   (when (< a 10) (return a))
)

输出

执行代码时,将返回以下结果 −

19
18
17
16
15
14
13
12
11
10
9
lisp_loops.htm
广告