Lisp在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
LISP 初体验 发布于:2021-08-11 13:16 XY坐标标注CAD插件 发布于:2021-06-11 15:25 format t 输出语句 发布于:2020-08-10 18:21 print 输出语句 发布于:2020-08-10 18:20 write 输出语句 发布于:2020-08-10 18:16 write-line 输出语句 发布于:2020-08-10 18:14 循环输出内容 发布于:2020-08-10 18:11 [更多]
显示目录

决策



决策

决策结构需要程序员指定一个或多个条件由程序进行评估或测试,以及要执行的语句或语句如果条件被确定为true,如果条件被确定为false那么选择要执行其他语句。

LISP提供了以下类型的决策构造。点击以下链接,查看其详细信息。

Construct 描述
cond 这个结构是用于用于检查多个测试行动作条件。它可以嵌套if或其他编程语言语句。
if if结构有多种形式。在最简单的形式,它后面跟着一个测试条,测试操作和一些其它相应措施(次)。
如果测试子句的值为true,那么测试的动作被执行,否则,由此产生的子句求值。
when 在最简单的形式,它后面跟着一个测试条和测试操作。如果测试子句的值为true,那么测试的动作被执行,否则,由此产生的子句求值。
case 这种结构实现了像cond 构造多个测试行动语句。但是,它会评估的关键形式,并允许根据该键的形式评价多个行动语句。

LISP的cond特殊构造

在LISP语言中cond结构是最常用的,以允许分支。

cond的语法是:

(cond   (test1    action1)
        (test2    action2)
     ...
    (testn   actionn))

在cond 语句中每个子句包含一个条件测试,并要执行的动作。

如果第一次测试下面的芯线,为test1,被评估为true,那么相关的行动的一部分, action1执行,返回它的值,及本子句的其余部分被跳过。

如果test1的计算结果是nil,然后控制移动到第二个子句,而不执行action1,和相同的流程进行后续处理。

如果没有试验条件计算结果为真,那么cond语句返回nil。

示例

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setq a 10)
(cond ((> a 20)
    (format t "~% a is less than 20"))
(t (format t "~% value of a is ~d " a)))

当单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

value of a is 10

请注意,第二个子句中t保证的是,如果没有其他的将最后完成的动作。

if结构

如果该宏后跟一个测试子句计算为 t 或nil。如果测试子句计算到t,然后按照测试子句的动作被执行。如果它是零,那么下一个子句进行评估计算。

if的语法:


(if (test-clause) (<action1) (action2))

示例1

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setq a 10)
(if (> a 20)
    (format t "~% a is less than 20"))
(format t "~% value of a is ~d " a)

当单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

value of a is 10

示例2

if子句后面可以跟一个可选的then子句:

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setq a 10)
(if (> a 20)
    then (format t "~% a is less than 20"))
(format t "~% value of a is ~d " a)

当您单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

a is less than 20
value of a is 10

示例 3

还可以创建使用if子句的if-then-else类型声明。

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

(setq a 100)
(if (> a 20)
   (format t "~% a is greater than 20") 
    (format t "~% a is less than 20"))
(format t "~% value of a is ~d " a)

当单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

a is greater than 20
value of a is 100

when构造

该when宏,后面跟着一个测试子句计算为t或为零。如果测试条被评估计算为nil,则任何形式的评估及nil返回,但是它的测试结果为t,则下面的测试条的动作被执行。

when宏的语法:


(when (test-clause) (<action1) )

示例

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:

 (setq a 100)
(when (> a 20)
   (format t "~% a is greater than 20"))
(format t "~% value of a is ~d " a)

当您单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

a is greater than 20
value of a is 100

case构造

case结构实现像cond结构多个测试动作语句。但是,它会评估的键形式,并允许根据该键的形式评价多个动作语句。

该case宏的语法是:


The template for CASE is:
(case  (keyform)
((key1)   (action1   action2 ...) )
((key2)   (action1   action2 ...) )
...
((keyn)   (action1   action2 ...) ))

示例

创建一个名为main.lisp一个新的源代码文件,并在其中输入如下代码:




(adsbygoogle = window.adsbygoogle || []).push({});



(adsbygoogle = window.adsbygoogle || []).push({});
(setq day 4)
(case day
(1 (format t "~% Monday"))
(2 (format t "~% Tuesday"))
(3 (format t "~% Wednesday"))
(4 (format t "~% Thursday"))
(5 (format t "~% Friday"))
(6 (format t "~% Saturday"))
(7 (format t "~% Sunday")))

当您单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

Thursday
由JSRUN为你提供的Lisp在线运行、在线编译工具
        JSRUN提供的Lisp在线运行,Lisp 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

  • 00:23
注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入:


服务器已安装大部分常用的第依赖库,但仍可能存在一些未被安装的库, 可以通过本窗口立即安装所需依赖库。


请输入依赖库的名称:

请选择语言: