Common Lisp 学习笔记(1)

特殊操作符、函数、宏

0.0 format

CL-USER>(format t "hello world") ;t=>*standard-output*
hello world
NIL
CL-USER>(format t "~a:~10t~a" "This is" "a shinny day")
This is:  a shinny day
NIL

~a=>美化输出(如字符串去引号、关键字去前导冒号),消耗任意一个实参
~10t=>制表(从上一个~t开始共10个空格)
~%=>换行
总之变量都是以~开始

1.函数

1.0 y-or-n-p

专门的输入提示函数

(y-or-n-p "continuing [y/n]?") ;当没有输入y Y N n时重新提示,输入这四个字符之一时则返回t or nil

1.1 defvardefparameter

定义变量

CL-USER>(defvar *db* nil) ;定义变量值为nil(双*暗示这是一个全局变量)
*DB*

defvar 定义的变量可以没有初值,一般为持久存在的
defparameter 定义变量必须带初值

1.2 funcallapply

与#’配合,调用作为数据打包然后传进来的函数
funcall=>传入的实参个数已知

CL-USER>(funcall  #'(lambda (x y) (format t "~a:~a" x y)) 2 3)
2:3
NIL

apply=>传入的实参个数未知
apply在传入作为数据的函数后 期待一个参数列表(列表前灵活的可以有若干孤立实参)

1.3 random

(random number &optional state)
[0 number)

1.4 一些数学函数

1.4.0 expt

幂运算
CL-USER>expt(2 3)
8

1.4.1 isqrt

算数平方根
CL-USER> (isqrt 4)
2
CL-USER>(isqrt 6)
2

1.4.2 mod

取余

CL-USER>(mod 2 3)
2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值