Lisp - 常量



在 LISP 中,常量是指在程序执行过程中其值永不改变的变量。常量使用 **defconstant** 结构声明。

语法

**defun** 结构用于定义函数,我们将在 **函数** 章节中详细介绍。

(defconstant PI 3.141592)

示例 - 创建常量

以下示例演示了声明全局常量 PI,并在随后名为 *area-circle* 的函数中使用该值计算圆的面积。

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

main.lisp

; define a constant PI as 3.141592
(defconstant PI 3.141592)

; define a function area-circle
(defun area-circle(rad)
   ; terminate current printing
   (terpri)
   ; print the redius
   (format t "Radius: ~5f" rad)
   ; print the area
   (format t "~%Area: ~10f" (* PI rad rad)))
   
; call the area-cirlce function with argument as 10
(area-circle 10)

输出

单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,并返回结果。

Radius:  10.0
Area:   314.1592

我们可以使用 **boundp** 结构检查常量是否已定义。

语法

; returns T if constant is available else return Nil
(boundp 'PI)

示例 - 检查常量是否存在

以下示例演示了声明全局常量 PI,并随后使用 boundp 结构检查 PI 是否存在,在下一条语句中,我们检查另一个未定义的常量。

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

main.lisp

; define a constant PI as 3.141592
(defconstant PI 3.141592)

; check if PI constant is defined
(write (boundp 'PI))  ; prints T

; terminate printing
(terpri) 

; check if OMEGA constant is defined
(write (boundp 'OMEGA))  ; prints Nil

输出

单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,并返回结果。

T
NIL
广告