HOME

Common Lisp 常用语法

1. 基本概念

Common Lisp 是一种功能强大的编程语言,以其灵活性和表达能力而著称。它具有动态类型系统、宏定义机制以及广泛的函数式编程支持等特性。

2. 变量与赋值

在 Common Lisp 中,变量声明不需要事先指定其类型。赋值语句使用 = 操作符:

(setq x 5) ; 将变量 x 赋值为整数 5

3. 表达式

Common Lisp 的表达式形式多样,包括算术运算、函数调用和条件判断等。

算术运算

常见的算术运算符有 +(加)、-(减)、*(乘)和 /(除)。例如:

(+ 2 3) ; 结果为 5
(- 10 4) ; 结果为 6
(* 3 7) ; 结果为 21
(/ 8 2) ; 结果为 4

条件表达式

Common Lisp 提供了 if 表达式来处理条件逻辑:

(if (oddp x)
    "x is odd"
    "x is even") ; 当 x 是奇数时,返回 "x is odd";否则返回 "x is even"

4. 函数定义与调用

函数在 Common Lisp 中使用 defun 定义:

(defun square (n)
  (* n n)) ; 定义一个平方函数

(square 5) ; 调用 square 函数,返回结果为 25

5. 列表操作

列表是 Common Lisp 中的一种重要数据结构。可以使用 conscarcdr 来创建和访问列表:

(cons 1 (cons 2 nil)) ; 创建一个列表:(1 . 2)
(car '(1 2 3)) ; 返回列表的第一个元素,结果为 1
(cdr '(1 2 3)) ; 返回列表除去第一个元素后的剩余部分,结果为 (2 3)

6. 循环与迭代

Common Lisp 提供了多种循环结构来实现迭代操作。loop 是最常用的宏之一:

(loop for i from 1 to 5 collect (* i i)) ; 返回列表:(1 4 9 16 25)

7. 宏定义与展开

Common Lisp 的宏允许程序员在运行时生成代码。使用 defmacro 来定义宏:

(defmacro square (n)
  `(list ',n 'squared)) ; 定义一个返回列表的宏

(square 3) ; 返回结果为 (3 squared)

8. 常用库与扩展

Common Lisp 提供了丰富的标准库和第三方扩展。可以使用 require 加载特定库:

(require 'cl-ppcre) ; 载入正则表达式处理库
(cl-ppcre:scan "hello" "hello world") ; 返回结果为 0,表示模式匹配成功的位置

以上就是 Common Lisp 中一些常用的基本语法和特性。通过这些基础知识点的掌握,可以为进一步深入学习这门强大的编程语言打下坚实的基础。