Clojure Web 开发-- Ring 使用指南

在 Clojure 众多的 Web 框架中,Ring 以其简单统一的 HTTP 抽象模型脱颖而出。Ring 充分体现了函数式编程的思想——通过一系列函数的组合形成了一个易于理解、扩展的 HTTP 处理链。

阅读更多

“玩转” 技术面试——链表的函数表示法

简介

《Acing the technical interview》,老外写的白板面试的调侃文,声色并茂,兼具叙述文的生动与技术文的抽象。文中用函数来模拟链表的表示法我在《编程语言的基石——Lambda calculus》里面有深入讲解,感兴趣的读者可以参考。本文最后,给出了 Python、Ruby 语言中链表的函数表示。

阅读更多

辨析 Ruby 中的 Method 与 Proc

Ruby is simple in appearance, but is very complex inside, just like our human body.

– Matz https://www.ruby-lang.org/en/about

阅读更多

Clojure 运行原理之字节码生成篇

上一篇文章讲述了 Clojure 编译器工作的整体流程,主要涉及 LispReader 与 Compiler 这两个类,而且指出编译器并没有把 Clojure 转为相应的 Java 代码,而是直接使用 ASM 生成可运行在 JVM 中的 bytecode。本文将主要讨论 Clojure 编译成的 bytecode 如何实现动态运行时以及为什么 Clojure 程序启动慢,这会涉及到 JVM 的类加载机制。

阅读更多

Clojure 运行原理之编译器剖析篇

Clojure is a compiled language, yet remains completely dynamic – every feature supported by Clojure is supported at runtime.

阅读更多

2016 年终总结

又到一年总结时,本来想着在农历年前考完科目三拿到驾照后再写的,目前来看希望不大了,这个目标只能留在17年去实现了,有种书到用时方恨晚的感觉。
一个词来总结 16 年——“运动元年”,算是完成了 15 年一小目标。OK,下面简单回顾下 16 年那些“重大事件”吧。

阅读更多

Clojure 开发那些事

Clojure —— 新世纪的 Lisp 方言,相信大多数同学多多少少都听过,毕竟有个杀手级应用 Storm,但是真正去写 Clojure 的同学估计不多,国内也罕见哪个公司招 Clojure 程序员。
作为推广 Clojure 万里长城的第一步,这篇文章首先介绍为什么要使用 Lisp 开发,之后开始介绍 Clojure 语法入门,紧接着介绍 Clojure 开发环境搭建,然后介绍使用第三方库时的一些注意点,最后介绍一下常见的测试方法。本篇文章所介绍内容都是我自己实践得出,不足之处请各位 Clojurians 指出。

阅读更多

韩国济州岛4日游

公司年底 outing,济州岛 4 日游(12/2-12/5)。济州岛对国人不需要签证,从杭州坐飞机去不到2个小时,绝对是旅游胜地。济州岛在韩国算乡下,但其依靠旅游业,硬生生的把 GDP 带上去了,听导游说一洗碗工月工资都能达到一万二,加个班一万八没问题。没去过的同学有机会一定要去体验一次,这里不仅仅有欧巴、化妆品,自然风景更是让人流连忘返,PM 2.5 基本都在 20 以内,你还等什么呢。

阅读更多

我为什么一周内连跑 2 个马拉松

我微信里的朋友应该都知道,上周(2016/11/06)与大上周(2016/10/30)我分别跑了杭州与上海的马拉松,第一场上海站完成了人生首个半马,第二场杭州站完成了人生首个全马(42.195KM),现趁着腿还有一些酸痛,回顾下当初为什么要参加马拉松,以及在跑全马最后十公里时那种全身酸痛到最后看到终点线并穿过时的心情,最后分享些注意事项给初次跑马拉松的同学。

阅读更多

Socket 编程实战

Socket 在英文中的含义为“(连接两个物品的)凹槽”,像the eye socket,意为“眼窝”,此外还有“插座”的意思。在计算机科学中,socket 通常是指一个连接的两个端点,这里的连接可以是同一机器上的,像unix domain socket,也可以是不同机器上的,像network socket

阅读更多