Lisp - 循环构造



循环 构造允许你实现类似于其他语言中最常见的 for 循环的迭代。

它允许你

  • 设置迭代变量

  • 指定将有条件地终止迭代的表达式

  • 指定在每次迭代中执行某些工作的表达式

  • 指定表达式,以及在退出循环之前执行某些工作的表达式

for 循环构造遵循以下语法:

(loop for loop-variable in <a list>
   do (action)
)

(loop for loop-variable from value1 to value2
   do (action)
)

示例 - 字符串循环

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

main.lisp

; loop on strings and print each value
(loop for x in '(tom dick harry)
   ; print x
   do (format t " ~s" x)
)

输出

当你点击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是:

TOM DICK HARRY

示例 - 数字循环

更新名为 main.lisp 的源代码文件,并在其中键入以下代码:

main.lisp

; loop on each number and print
(loop for a from 10 to 20
   ; print a
   do (print a)
)

输出

当你点击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是:

10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 

示例 - 数字条件循环

更新名为 main.lisp 的源代码文件,并在其中键入以下代码:

main.lisp

; loop numbers from 1 to 20
(loop for x from 1 to 20
   ; if number is even
   if(evenp x)
   ; print x
   do (print x)
)

输出

当你点击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是:

2 
4 
6 
8 
10 
12 
14 
16 
18 
20
lisp_loops.htm
广告