`
deepfuture
  • 浏览: 4400508 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80078
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70048
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103358
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285816
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15014
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67566
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32151
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45991
社区版块
存档分类
最新评论

lisp-progn

 
阅读更多

* (if (oddp 5) (progn (setf *xx* t) `ok) `allright)

 

OK

* (setf *xx* nil)

 

NIL

* *xx*

 

NIL

* (if (oddp 6) (progn (setf *xx* t) `ok) `allright)

 

ALLRIGHT

* *xx*

 

NIL

*

 

progn的目标是在某个语句前插入,如果这个语句得到了执行,那么插入的这个语句也会执行,并且先于这条语句执行

0[2] (if (oddp 5) (progn (setf *xx* 3) (setf *xx* (+ *xx* 2))) `allright)

 

5

0[2] (if (oddp 5) (progn (setf *xx* 3) (setf *xx* (+ *xx* 2))) `allright)

 

5

0[2] (if (oddp 5) (progn (setf *xx* 9) (setf *xx* (+ *xx* 2))) `allright)

 

11

0[2]

分享到:
评论

相关推荐

    AutoLISP-应用程序源代码.pdf

    * `progn`语句用于实现多个语句的组合执行。 这些特性是AutoLISP编程语言的基本组成部分。 与AutoCAD集成 代码中还包括了与AutoCAD软件的集成,例如: * `acadmnlpath`变量用于存储AutoCAD的安装路径。 * `...

    common-lisp-by-example:通过示例常见Lisp的回购

    `(if ,test (progn ,@body))) ``` **五、模块与包系统** 包系统管理符号的命名空间,防止不同模块之间的符号冲突。`in-package` 宏用于切换当前包,`import` 和 `export` 分别用于引入和导出符号。 **六、函数式...

    AutoLisp入门教程

    7. **错误处理与调试**:`error`函数用于抛出错误,`progn`和`catch/throw`可以实现异常处理。`print`和`debug`函数有助于在开发过程中调试代码。 8. **学习资源**:压缩包中的文件如"明经通道 AutoLISP函数.chm"和...

    AutoLISP函数参考【中文版】

    例如,`defun`用于定义函数,`if`和`cond`实现条件判断,`while`和`do`用于循环,`progn`用于组合多个语句,`vla-get`和`vla-set`操作AutoCAD的对象属性,这些都是编写高效AutoLISP程序的基础。 总之,AutoLISP函数...

    Lisp函数参考大全中文版_lisp大全pdf_Lisp函数参考大全中文版_

    7. **特殊形式**:Lisp有一些特殊形式,如` progn`用于执行一系列表达式,`quote`用于防止表达式的求值,以及`let`和`let*`用于局部变量绑定。 8. **迭代和循环**:Lisp提供多种循环结构,如`dotimes`用于基于次数...

    AutoLISP例程序

    - **控制结构**:如条件语句(`if`)、循环(`dotimes`、`dolist`)和过程(`progn`)。 3. **AutoLISP与AutoCAD的交互**: - **AutoCAD API**:AutoLISP可以通过AutoCAD的应用程序编程接口(API)访问AutoCAD的...

    Lisp函数参考大全中文版.pdf

    ### Lisp函数参考大全中文版知识点概述 #### 一、基础运算与比较操作符 - **加法 (`+`)**:支持数字的加法运算。 - **减法 (`-`)**:支持数字的减法运算。 - **乘法 (`*`)**:支持数字的乘法运算。 - **除法 (`/`)*...

    [Lisp相关文档].Lisp.Quick.Reference

    - 例如:`(defmacro when (test &rest body) `(if ,test (progn ,@body)))` 定义了一个类似于if-then的宏。 #### 9.5 Control Flow 控制流 - 包括条件语句、循环等控制结构。 - 例如:`(cond ((> x 0) "positive")...

    lisp函数大全

    9. **特殊形式**:如QUOTE、LAMBDA、PROGN等,它们在LISP中扮演着核心角色。 10. **环境与变量**:如SETF、GET、DEFVAR、DEFUN等,涉及变量的定义、赋值和获取。 11. **错误处理**:如CATCH和THROW,用于异常处理...

    autolisp程序集,常用的,参考下载

    4. **内置函数和特殊形式**:例如`setq`用于赋值,`car`和`cdr`用于访问列表元素,`if`进行条件判断,`defun`定义函数,`progn`执行一系列语句。 5. **交互性**:AutoLISP允许用户在AutoCAD环境中直接运行和测试...

    emacs lisp函数手册,版本24.3

    - **求值控制结构**:如`progn`、`eval`等。 #### 十、控制结构 - **条件语句**:如`if`、`cond`。 - **循环结构**:`while`、`dotimes`等。 - **错误处理**:如何捕获异常并进行处理。 #### 十一、变量 - **局部...

    lisp实现的字典序求全排列

    Lisp 是一种历史悠久的函数式编程语言,以其独特的列表结构和强大的元编程能力而著称。在 Lisp 中,所有的数据和代码都是由列表表示的。本篇文章中的代码使用了 Common Lisp 的语法。 ### 3. 函数定义 - **findj**...

    AutoLisp_Vlisp.rar_AutoLisp cad_autolisp_vlisp_vlisp函数

    4. `(progn expr1 expr2 ...)`:执行一系列表达式,并返回最后一个表达式的值。 5. `(setq *error-flag* t)` 和 `(catch tag body)`:用于异常处理,当发生错误时,`*error-flag*`被设置为`t`,并可以通过`catch`...

    VisualLISP和Excel电子表格.doc

    (progn (setq tlbver (substr (vl-filename-base tlbfile) 6)) (cond ((= tlbver "9") (princ "\n 初始化 Microsoft Excel 2000...") ) ((= tlbver "8") (princ "\n 初始化 Microsoft Excel 97...") ) ((=...

    CLK.rar_lisp

    5. 错误处理和调试:确保程序在遇到意外情况时能正确处理,使用`(error)`、`(progn)`等构造。 在学习和使用CLK.LSP之前,你需要熟悉AutoLISP编程环境,安装并配置AutoCAD,理解AutoCAD的基本操作和命令,以及LISP...

    AutoLisp代码

    使用`(error "错误信息")` 抛出错误,`(progn …)` 用于无错误块,`(catch tag body)` 和 `(throw tag value)` 实现异常处理。 9. **程序组织** 大型的AutoLISP项目通常会使用多个文件组织,利用`load` 或 `...

    qiexian.zip_lisp_tangent line_切线

    (progn (setq tangent-point (intersection-circle-circle c1-center c1-radius c2-center c2-radius)) ; 计算切点 (setq tangent-line (tangent-line-at-point c1-center c1-radius tangent-point)) ; 计算切线...

    LISP in small pieces 高清PDF 带目录

    *.*.* 序列:序列在LISP中用于表示一系列的操作,可能涉及到begin或progn等构造。 *. *.*.* 赋值:赋值操作允许变量被赋予新的值,是LISP程序中常见的操作。 *. *.*.* 抽象:抽象在LISP中通常通过定义函数实现,...

    ansi common lisp documentansi common lisp document

    ` progn` 用于执行一系列表达式,`let` 和 `let*` 用于局部变量绑定。 5. **宏系统**:Common Lisp 的宏系统是其独特之处,允许程序员在编译时编写代码生成器。`defmacro` 用于定义宏,通过宏展开,可以在运行前...

Global site tag (gtag.js) - Google Analytics