## Lisp 类语言中的线程 作者是一位 Common Lisp 爱好者,同时使用 Clojure 和 TypeScript,探索在其他语言中重现 Clojure 方便的线程宏。线程宏通过以自然、从左到右的顺序表达一系列函数应用来增强可读性,从而消除过多的括号。 然而,线程宏依赖于 Lisp 中常见的强大宏系统,而在其他地方则不太常见。这促使人们研究*线程组合器*——传递闭包以实现类似效果的函数。作者在他们的语言 Lamber 中实现了这个概念,使用 `piping`、`pipe` 和 `piped` 函数。 `piping` 启动过程,`pipe` 通过闭包将函数链接在一起并按顺序应用它们,而 `piped` 作为终止符,返回最终值。即使使用像 `->` 这样的简写别名,由于 Lamber 的极简设计,生成的语法仍然有些冗长,但作者认为可以在其他语言中用专用运算符更简洁地实现类似的概念。该方法侧重于“thread-last”风格,符合 Lamber 偏爱尾重函数参数的偏好。