首页 > 其他分享 >无涯教程-LISP - 循环语句

无涯教程-LISP - 循环语句

时间:2024-01-13 22:32:00浏览次数:40  
标签:语句 教程 return LISP 无涯 BLOCK ENTERING print block

在某些情况下,您需要执行一段代码次数,循环语句使我们可以多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式。

Loops

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

Sr.No. Construct & 描述
1 loop

以最简单的形式,它允许您重复执行某些语句,直到找到 return 语句。

2 loop for

循环for构造使您可以像其他语言中最常见的那样实现for循环,如迭代。

3 do

do构造还用于使用LISP执行迭代。

4 dotimes

dotimes构造允许循环进行一定数量的迭代。

5 dolist

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

block退出块

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

参考链接

https://www.learnfk.com/lisp/lisp-loops.html

标签:语句,教程,return,LISP,无涯,BLOCK,ENTERING,print,block
From: https://blog.51cto.com/u_14033984/9233895

相关文章

  • 无涯教程-LISP - 条件判断
    以下是大多数编程语言中常见的典型决策结构的一般形式-LISP提供以下类型的决策构造,单击以下链接以查看其详细信息。Sr.No.Construct&描述1cond此构造用于检查多个判断操作子句。2ifif构造具有多种形式。3when如果test子句的判断输出为true,则执行test操作,否则,对后......
  • 无涯教程-LISP - 运算符
    运算符是一个符号,告诉编译器执行特定的数学或逻辑操作。LISP允许对数据进行大量操作,并由各种函数,宏和其他构造支持。允许对数据进行的操作可以归类为-算术运算比较操作逻辑运算按位运行算术运算下表显示了LISP支持的所有算术运算符。假设变量A=10,变量B=20,然后-运算符......
  • 无涯教程-LISP - 常量声明
    在LISP中,常量是在程序执行期间永不更改其值的变量,常量使用defconstant构造进行声明。以下示例显示了声明全局常量PI并随后在名为area-circle的函数中使用此值来计算圆的面积的情况。defun构造用于定义一个函数,我们将在Function一章中对其进行研究。创建一个名为main.l......
  • 无涯教程-LISP - 宏(Macros)
    宏允许您扩展标准LISP的语法。定义宏在LISP中,使用另一个名为defmacro的宏定义了一个命名宏,定义宏的语法为-(defmacromacro-name(parameter-list))"Optionaldocumentationstring."body-form宏定义由宏的名称,参数列表,可选的文档字符串和Lisp表达式主体组成。让我们编写......
  • 无涯教程-LISP - 环境变量
    Lisp执行器CLISP是用于在Windows中设置LISP的GNU通用LISP多体系结构编译器,Windows版本使用Windows下的MingW模拟Unix环境,安装程序会处理此问题,并自动将clisp添加到WindowsPATH变量。您可以从此处获取最新的WindowsCLISP-https://sourceforge.net/projects/clisp/files/late......
  • SpringCache教程
    前言极大地简化了程序员对于cache的操作流程,可以使用拒接方便的实现,支持redis,Caffeine,Memcached等不同的缓存框架。相关注解名称解释@Cacheable主要针对方法配置,能够根据方法的请求参数对其进行缓存@CacheEvict清空缓存@CachePut保证方法被调用,又希望结果......
  • 无涯教程-LISP - 简介
    Lisp(历史上拼写为LISP)是具有悠久历史的计算机编程语言家族,有独特和完全括号的前缀符号表示法。起源于公元1958年,是现今第二悠久而仍广泛使用的高端编程语言。只有FORTRAN编程语言比它更早一年。Lisp编程语族已经演变出许多种方言。现代最著名的通用编程语种是Clojure、CommonLis......
  • RUST web框架axum快速入门教程6之测试
    本文主要讨论axum的测试,axum对于测试的支持还是比较完善的,我们可以测试状态码,HTTP头信息,响应体等内容,因为框架实现的原因,其实axum很依赖tower。往期文章:https://youerning.top/post/axum/quickstart-1https://youerning.top/post/axum/quickstart-2https://youerning.top/pos......
  • 无涯教程-Maven - 快照
    SNAPSHOT是一个特殊版本,指示当前的开发副本,与常规版本不同,Maven为每个构建都在远程存储库中检查新的SNAPSHOT版本。现在,数据服务团队将每次将SNAPSHOT更新的代码发布到存储库中,例如数据服务:1.0-SNAPSHOT,将替换旧的SNAPSHOTjar。快照与版本对于Version,如果Maven一旦下载了提......
  • ★教程4:FPGA/MATLAB/Simulink联合应用开发入门与进阶X例——前言★教程3:simulink学
        专业即算法,算法即数学,数学即万物。从事MATLAB算法仿真工作15年,从事FPGA系统开发工作12多年。擅长解决各种算法仿真、建模、通信、图像处理、AI、智能控制等。 1.无线基带,无线图传,编解码2.机器视觉,图像处理,三维重建3.人工智能,深度学习4.智能控制,智能优化目录1.FPG......