LISP - 循环

可能有一种情况,您需要多次执行一段代码。 循环语句允许我们多次执行一条语句或一组语句,以下是大多数编程语言中循环语句的一般形式。

循环

LISP 提供以下类型的构造来处理循环要求。 单击以下链接查看其详细信息。

序号 构造和描述
1 循环

循环结构是LISP提供的最简单的迭代形式。 最简单的形式是,它允许您重复执行某些语句,直到找到 return 语句。

2 for 循环

循环 for 构造允许您实现类似 for 循环的迭代,这在其他语言中最常见。

3 do

do 结构还用于使用 LISP 执行迭代。 它提供了一种结构化的迭代形式。

4 dotimes

dotimes 构造允许循环一些固定的迭代次数。

5 dolist

dolist 构造允许迭代列表的每个元素。

退出 block

blockreturn-from允许您在出现任何错误时从任何嵌套块正常退出。

block 函数允许您创建一个由零个或多个语句组成的主体的命名块。 语法是 −

(block block-name(
...
...
))

return-from 函数采用块名称和可选(默认为 nil)返回值。

以下示例演示了这一点 −

示例

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

(defun demo-function (flag)
   (print 'entering-outer-block)
   
   (block outer-block
      (print 'entering-inner-block)
      (print (block inner-block

         (if flag
            (return-from outer-block 3)
            (return-from inner-block 5)
         )

         (print 'This-wil--not-be-printed))
      )

      (print 'left-inner-block)
      (print 'leaving-outer-block)
   t)
)
(demo-function t)
(terpri)
(demo-function nil)

当你点击执行按钮,或者输入Ctrl+E,LISP立即执行,返回结果为 −

ENTERING-OUTER-BLOCK 
ENTERING-INNER-BLOCK 

ENTERING-OUTER-BLOCK 
ENTERING-INNER-BLOCK 
5 
LEFT-INNER-BLOCK 
LEAVING-OUTER-BLOCK