LISP - 循环
-
简述
可能有一种情况,当您需要多次执行一段代码时。循环语句允许我们多次执行一条语句或一组语句,以下是大多数编程语言中循环语句的一般形式。LISP 提供以下类型的结构来处理循环要求。单击以下链接以查看其详细信息。序号 构造与描述 1 loop loopconstruct 是 LISP 提供的最简单的迭代形式。在其最简单的形式中,它允许您重复执行一些语句,直到找到一个return陈述。2 for 循环 循环 for 构造允许您像其他语言中最常见的那样实现类似迭代的 for 循环。3 do do 构造也用于使用 LISP 执行迭代。它提供了一种结构化的迭代形式。4 dotimes dotimes 构造允许循环一些固定次数的迭代。5 dolist dolist 构造允许遍历列表的每个元素。 -
优雅地退出一个块
block和return-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