《计算机编程的艺术》与想象力编程

版权所有 © 2018 林鹏程, 保留所有权利。 

顺带安利一下Clojure: 西方文明和东方文明的区别, 类同于SICP里讲述的PASCAL和Lisp的区别, Pascal是为了建造金字塔—壮丽辉煌,令人震撼,是由各就其位的沉重巨石筑起的静态结构。而Lisp则是为了构造有机体—同样的壮丽辉煌,令人震撼,由各就其位但却永不静止的无数简单的有机体片段构成的动态结构。  所以clojue简单而强大的表现力与东方哲学里"道无所不在,道法自然"(其实就是科学派的"模拟"或"仿生")相结合, 可以象东方神龙一样千变万化, 玄妙入神.  这是其他语言难以如些简单自然地做到的. 使用Lisp系的语言, 是需要强大的想象力和创造力的.  想象力编程的例子: 比如clojure的restful系统构造, 采用纯函数构成的管道数据流,流转的数据是map,而ring流转的也是map,因此restful系统可以看成是一束数据流,清汤挂面,简单清爽。每个请求和响应可以连在一起构成一对来回的数据流,ring就象清明上河图的城门,队进队出的流沟通了不同的场景, 场景转换巧妙自然.逻辑上看起来象这样:

(->> data-map clj-f1 clj-f2 cfj-f3 ring cljs-f1 cljs-f2 cljs-f3)

(->> data-map cljs-f1 cljs-f2 cfjs-f3 ring clj-f1 clj-f2 clj-f3)

这就是TAOCP《计算机编程的艺术》

推荐阅读更多精彩内容