Skip to content

Instantly share code, notes, and snippets.

View zhouqiang-cl's full-sized avatar
💧
It is time

zhouqiang zhouqiang-cl

💧
It is time
View GitHub Profile
@zhouqiang-cl
zhouqiang-cl / zerop.txt
Last active December 14, 2016 10:22
common lisp的函数MINUSP, PLUSP,ZEROP
语法
minusp real => generalized-boolean
plusp real => generalized-boolean
zerop number => generalized-boolean
参数和值
real -- 一个实数(有理数和物理数)
number -- 数(实数和虚数)
generalized-boolean -- 一个布尔型的值
@zhouqiang-cl
zhouqiang-cl / gist:187f0dd8cb2a22e8629ea69cb79b51cd
Last active November 20, 2016 08:39
common lisp 的宏 PROG1, PROG2 和特殊操作符 PROGN, MULTIPLE-VALUE-PROG1
语法
prog1 first-form form* => result-1
prog2 first-form second-form form* => result-2
progn form* => result*
multiple-value-prog1 first-form form* => first-form-results
参数和值
first-form --- 一个 form (form表示一个会被求值的对象)
second-form --- 一个 form
@zhouqiang-cl
zhouqiang-cl / gist:551244535f259086aa1f1e42860d5612
Created November 20, 2016 07:42
存取器 VALUES 和函数 VALUES-LIST
语法
values &rest object => object*
values-list list => element*
参数和值
object --- 一个对象
list --- 一个列表
elements --- 列表的元素
描述
values 返回多个值
语法
#+test expression
#-test expression
#'function
#.foo
参数和值
test --- 是一个feature expression
function --- 函数名
@zhouqiang-cl
zhouqiang-cl / gist:020ffebf7d25f05a4a1aa88c3bcf300a
Last active November 28, 2016 02:46
common lisp 的声明 INLINE, NOTINLINE
语法
(inline function-name*)
(notinline function-name*)
参数和值
function-name --- 函数名
上下文执行
declaration 或 proclamation
@zhouqiang-cl
zhouqiang-cl / gist:3b051639e92e02e1fbe5869e4e5375a1
Created November 20, 2016 12:45
common lisp 的函数 INTERN
语法
intern string &optional package => symbol, status
参数和值
string --- 一个字符串
package --- 包名, 默认当前包名
symbol --- 一个符号
status --- :inherited, :external, :internal, 或 nil
描述
ansi common lisp:
http://acl.readthedocs.io/en/latest/zhCN/index.html
on lisp
http://www.ituring.com.cn/minibook/862
@zhouqiang-cl
zhouqiang-cl / gist:b0dee58d1922cc93c43b125ab2bb432b
Last active November 20, 2016 15:32
类型声明和宏 DECLAIM 和符号 DECLARE
语法
declaim declaration-specifier* => implementation-dependent
declare declaration-specifier*
参数和值
declaration-specifier --- 一个类型声明, 不对它求值
描述
1. common lisp 通过显式类型声明来生成高效的代码. 在 Common Lisp 中. 类型声明完全是可选的. 它们可以让程序运行的更快,但(除非错误)不会改变程序的行为
2. 全局声明以 declaim 伴随一个或多个声明的形式来实现
@zhouqiang-cl
zhouqiang-cl / gist:561ea17628850ecc6539b8fdbe3efca8
Created November 21, 2016 16:53
common lisp 的通用函数定义 DEFGENERIC 和 DEFNETHOD
语法
defgeneric function-name gf-lambda-list [[option | {method-description}*]]
defmethod function-name {method-qualifier}* specialized-lambda-list [[declaration* | documentation]] form*
参数
option::= (:argument-precedence-order parameter-name+) |
(declare gf-declaration+) |
(:documentation gf-documentation) |
(:method-combination method-combination method-combination-argument*) |
(:generic-function-class generic-function-class) |
@zhouqiang-cl
zhouqiang-cl / gist:78767b347af5b28183df5025a3825861
Created November 21, 2016 17:18
common lisp 函数 error
语法
error datum &rest arguments
参数和值
datum, arguments --- 错误提示, 通常是一个 simple-error 对象
描述
error 当条件发生时,产生一个错误信号
代码