随笔分类 -  - Lisp

《EOPL》: 实现了惰性求值的两种参数传递策略
摘要:call-by-need 不过是比 call-by-name 多了一个 memorization 的步骤 阅读全文

posted @ 2019-01-25 00:21 王家恒 阅读(324) 评论(0) 推荐(0)

《EOPL》 : 实现了 call/cc
摘要:待填坑 完整代码:scheme-code/EOPL/ch5/4-LETREC (CPS)-Exception-扩展/exer-5.43__★callcc/ 阅读全文

posted @ 2019-01-25 00:04 王家恒 阅读(507) 评论(0) 推荐(0)

CLOS : Common Lisp 的面向对象支持
摘要:1. defclass ( :accessor/reader/writer ; :initarg ; :initform 2. defgeneric 3. defmethod 1. 多重继承时的优先级(类似Ruby中的Ancestor Chain) 2. 面向对象的两种模型: ① obj. meth 阅读全文

posted @ 2018-09-19 01:36 王家恒 阅读(386) 评论(0) 推荐(0)

一道Common Lisp 宏的练习题
摘要:这是《ANSI Common Lisp》第10章“宏”的习题第6题: 定义一个宏,接受一变量列表以及一个代码主体,并确保变量在代码主体被求值后恢复 (revert)到原本的数值 阅读全文

posted @ 2018-09-19 00:26 王家恒 阅读(181) 评论(0) 推荐(0)

Macro的写法 `( , ,@ )
摘要:很容易写错 阅读全文

posted @ 2018-09-18 22:52 王家恒 阅读(572) 评论(0) 推荐(0)

Common Lisp : Symbol到底是什么
摘要:主要参考: 《Emacs之魂》(四) 包: 阅读全文

posted @ 2018-09-18 16:18 王家恒 阅读(365) 评论(0) 推荐(0)

Common Lisp中的读取宏 ' #' `( , ,@) #( ) #na( ) #<OBJECT> :Keyword
摘要:当你把 xx 当做符号使用时 'xx , 这个符号是没有任何函数/变量语义的, 仅仅是一个 符号而已(就像一个string一样) 但你可以对这个string有其他的用法,比如使用它所binding的同名函数、使用它所binding的同名动态变量 (要知道,“代码” 不过是 一串String, 这就是 阅读全文

posted @ 2018-09-18 15:20 王家恒 阅读(594) 评论(0) 推荐(0)

25个特殊操作符(special operator)
摘要:1. CLHS (Common-Lisp-Hyper-Spec) http://www.lispworks.com/documentation/HyperSpec/Body/03_ababa.htm 2. 为何特殊 (截图自 《Practical Common Lisp》 4.4节 即: 特殊操作符 阅读全文

posted @ 2018-09-18 14:42 王家恒 阅读(762) 评论(0) 推荐(0)

终于理解Macro: Tree-of-symbols , 几个特殊标记符号
摘要: 阅读全文

posted @ 2018-09-16 18:46 王家恒 阅读(311) 评论(0) 推荐(0)

Lisp : (quote) code is data (eval) data as code
摘要: 阅读全文

posted @ 2018-09-16 15:32 王家恒 阅读(223) 评论(0) 推荐(0)

导航