Racket:一门让你自己写语法的语言

A Friendly Introduction to Racket

Racket:一门让你自己写语法的语言

今天带你走进编程界最古老也最独特的家族之一:Lisp。从1958年John McCarthy在MIT发明Lisp,到Scheme的诞生,再到如今Racket的崛起,这门语言始终引领着编程思想的变革。在这里,代码即数据,括号不是负担而是结构,程序甚至可以编写程序。你将看到Racket如何被用于构建语言、形式化验证、排版出版,甚至教育领域。无论你是Clojure、Common Lisp还是Emacs Lisp的用户,Racket都能让你重新思考编程的本质。准备好迎接一场关于递归、宏和同像性的思维冒险吧!

Lisp 值得学习,因为当你终于理解它时,会获得一种深刻的启蒙体验。
  1. infinitebit

    Hiii,我是 Geometridae(Astrid Motilla)!Racket 社区的一位朋友告诉我我的文章出现在了这里。感谢大家的阅读,我会认真考虑所有的反馈和不同观点,用于改进这篇以及未来的文章!:)

    我也鼓励大家亲自试一试,享受其中的乐趣!我在书中的一些 3D 演示里就用到了它。它当然不是万能灵药,但我发现它确实能显著提高生产力。

    就我个人而言,我最喜欢的 Lisp 是 Racket、Common Lisp 和 Clojure,按此顺序。我也一直想试试 Chicken Scheme!:)

  2. GregBuchholz

    > 没有任何特殊的语法。

    (list '(1. . #\#)

    -5/6+7.s-8i

    `(1 ,@2)

    1@1 ;嗯,没有取消引用拼接的逗号 ;-)

    10# ;惊讶吗?

    (list #i+1 +1i 1+i) ;是复杂(complicated)还是复数(complex)?

    #e-1e10i ;老麦克唐纳?

    "(* 9 10)" #())

  3. SA9G

    我的第一门语言是 1980 年在 CMU 学的 Pascal……紧接着在 CS/AI 课程里学了 LISP,在 EE 课程里学了 C。当时我非常推崇 MacLisp,也就是 GLS 参与开发的 MIT 版本(能在源码里到处看到他的注释)。当然,GLS 后来转向了 Scheme,并写了几篇关于闭包的 definitive 论文。是啊,那还是 PC 普及之前的年代……真是很久很久以前了。(C++ 是多年以后才出现的,我不太喜欢。如果当年被迫让我用 C 的++版本,我早就转行搞硬件去了。)

    GLS 在 80 年代初搬到了 CMU……我记得曾上过他的“编程语言比较”课。他是个好老师,也是个令人印象深刻的人。除了显而易见的内容,那门课他还涵盖了 SNOBOL 和 APL。美好的回忆 :-)

  4. perrygeo

    > 在《神奇数字马戏团》(第 8 集,"hjsakldfhl")中,当 Kinger 打开终端试图重置 Caine 时,你可以看到 Caine(一个建于 1996 年的创意 AI)是用 Lisp 编写的。文件 literally 就叫 Caine-core.lisp。

    这个细节很棒。这也解释了为什么 Caine 能在第 9 集回归:Lisp 的 continuations 允许优雅的错误恢复。

  5. M0THXYZ

    尽管我是 Racket 的粉丝,但这篇并不是友好的入门文章。这简直就是一次速通(speedrun)。

    当一篇入门文章自称“友好”时,我不指望它会预设我知道 lambda 是什么。

    当一篇入门文章自称“友好”时,我不指望里面会出现任何语法规则。

同日更多故事

2026-08-22