【为什么你写的是Ruby,爽到的却是Lisp灵魂】
写Ruby那种顺滑的链式调用时,你其实是在写Lisp。创始人Matz承认,Ruby起初就是剥离了s-expressions和宏的Lisp,只是套上了Smalltalk的外壳。
让人写得爽的不是它的OOP,而是函数式底色。带问号的谓词、闭包Block、Lazy Enumerators,这些优雅全是Lisp的遗产。有意思的是可读性权衡:Lisp的括号嵌套逼你逆向阅读,而Ruby的链式调用让数据流自然流动。
这给我们的启发是,OOP与FP的对立是个伪命题。OOP擅长组织业务名词,FP擅长处理数据动词。Ruby的成功在于用符合直觉的语法,封装了高级的函数式思想。懂了这层逻辑,你看Elixir或Clojure时就会明白,太阳底下没有新鲜事,大家只是换了套涂装。
blog.tacoda.dev/lisps-influence-on-ruby-6a54f1a7740e
