LISP - 循环


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

循环

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

先生。 构造与描述
1 环形

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

2 循环

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

3

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

4 多时

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

5 多利斯特

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

优雅地退出区块

块和返回允许您在出现任何错误时从任何嵌套块正常退出。

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