LISP 中的循环结构
公共 LISP 中的循环 for 构造用于迭代可迭代对象,类似于其他编程语言中的 for 循环。它可以用于以下用途:
- 这用于设置迭代变量。
- 它可用于有条件地终止迭代。
- 它可用于对迭代元素进行操作。
循环 For 结构可以有多种语法。
语法:
- 要遍历列表:
(loop for variable in input_list
do (statements/conditions)
)
这里,
- input_list是要迭代的列表。
- 该变量用于跟踪迭代。
- 语句/条件用于对迭代元素进行操作。
- 要迭代给定范围:
(loop for variable from number1 to number2
do (statements/conditions)
)
这里,
- 该NUMBER1是起始号码和号码2是从范围内的结束号码。
- 该变量用于跟踪迭代。
- 语句/条件用于对迭代元素进行操作。
示例: LISP 程序打印范围内的数字
Lisp
;range from 1 to 5
(loop for i from 1 to 5
;display each number
do (print i)
)
Lisp
;list with 5 numbers
(loop for i in '(1 2 3 4 5)
;display each number
do (print i)
)
;list with 5 strings
(loop for i in '(JAVA PHP SQL HTML CSS)
;display each string
do (print i)
)
Lisp
;list with 5 numbers
(loop for i in '(1 2 3 4 5)
;display each number by incrementing each number by 5
do (print (incf i 5))
)
;list with 5 numbers
(loop for i in '(1 2 3 4 5)
;display each number by decrementing each number by 5
do (print (decf i 5))
)
输出:
1
2
3
4
5
示例 2: LISP 程序在列表上迭代元素。
Lisp
;list with 5 numbers
(loop for i in '(1 2 3 4 5)
;display each number
do (print i)
)
;list with 5 strings
(loop for i in '(JAVA PHP SQL HTML CSS)
;display each string
do (print i)
)
输出:
1
2
3
4
5
JAVA
PHP
SQL
HTML
CSS
示例 3: LISP 程序以迭代范围内的每个数字并执行递增和递减操作。
Lisp
;list with 5 numbers
(loop for i in '(1 2 3 4 5)
;display each number by incrementing each number by 5
do (print (incf i 5))
)
;list with 5 numbers
(loop for i in '(1 2 3 4 5)
;display each number by decrementing each number by 5
do (print (decf i 5))
)
输出:
6
7
8
9
10
-4
-3
-2
-1
0