文章目录
  1. 1. 第三章
    1. 1.1. 基础函数
    2. 1.2. 输入与输出

第三章

基础函数

defvar defun 有不同的作用,定义变量和函数 list 可以用来构建一个列表 getf 可以用来取出列表中的值 setf 可以用来设置列表或者其他元素的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;;; 定义一个列表,元素是1 2 3
(list 1 2 3)
;;; 定义一个列表,元素是a b c
;;; 在lisp中任何字符串如果直接出现都会被lisp求值,在字符串前面放置',可以使用他的字面值
(list 'a 'b 'c)
;;; 定义一个列表,列表的值是键值对
(list :a 1 :b 2 :c 3)
;;; 取出列表的值
(getf (list :a 1 :b 2 :c 3) :a) ; 1
;;; 实际上,list会自动将自己的值,每两个分为一对
(getf (list 1 2 3 4) 1) ;2
(getf (list 1 2 3 4) 2) ;NIL
;;; 定义一个变量
(defvar str "hello")
(defvar aList (list :a 1 :b 2 :c 3))
;;; 修改变量的值
(setf str "hello, world") ;对已经定义过的变量重新使用defvar定义不会修改他的值
(setf (getf aList :a) 2)
;;; 定义一个函数
(defun myfun (args)
  (format t args)
)
(myfun str)

输入与输出

format 函数可用于输出 read-line 读取一行字符 t 代表控制台 *query-io* 代表默认io

1
2
(format t "hello, world")
(read-line *query-io*)
文章目录
  1. 1. 第三章
    1. 1.1. 基础函数
    2. 1.2. 输入与输出