Pratical Common Lisp 读书笔记 (第三章)
更新日期:
第三章
基础函数
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*) |