LISP - if 构造

  • 简述

    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)
    
    当您单击执行按钮或键入 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)
    
    当您单击执行按钮或键入 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)
    
    当您单击执行按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -
    
    a is greater than 20
    value of a is 100