说在前面 最近在研究 Apache Druid 的原理,在不 debug 的情况下已经无法再进一步深入了,因此想在本地搭一套调试环境,但网上可用的资料很少,只能自己摸索,在这...
说在前面 最近在研究 Apache Druid 的原理,在不 debug 的情况下已经无法再进一步深入了,因此想在本地搭一套调试环境,但网上可用的资料很少,只能自己摸索,在这...
1. 编译器宏 Lisp源代码文本,首先经过读取器,得到了一系列语法对象,这些语法对象,在宏展开阶段进行变换,最终由编译器/解释器继续处理。 以下我们使用defmacro定义...
1. 反引用 上文我们介绍了如何使用defmacro定义宏, 我们定义了inc宏,(inc x)会被展开为(setq x (1+ x)),因此, 宏做的是语法对象的变换操作,...
回顾 上文我们介绍了宏,它与函数是不同的,函数调用发生在程序执行期间,函数在调用之前,会先对它所有的实参进行求值,然后将形参绑定到这些实参的求值结果上,函数的返回值会作为函数...
数据和代码 如果说Lisp语言有一个特性最能使人津津乐道的话,我想应该是它的宏系统(macro system)了吧,在Lisp语言中,程序和代码的表现形式(textual r...
org mode 是 emacs 下的神器,不仅可以作时间管理,笔记管理,也可以做文学编程。这时用到的一个重要功能就是 org-babel 了。 Org 可以获取#+BEGI...
安装nix并配置channel: 安装gradle: 安装emacs: 配置emacs: 创建并拷贝github文件内容至~/.emacs.d/init.elhttps://...
haskell入门门槛有点高,很大的原因是因为资料太少... 我也是走了不少弯路,但是它却确实是个好东西 的,希望能帮助到更多的人认识它。 打个广告,haskell有个jvm...
自动化运维已经是必不可少的一环,经历过生产上各种版本问题,简单是痛心疾首,忍不住拿此开刀,希望借此帮助提升国人的技术实力。编写此文献给今天30岁的自己。 自动化运维包含两部分...