关于译文

优质
小牛编辑
120浏览
2023-12-01

关于本文

该教程中的大部分内容都能在常见的 Scheme 入门教材中找到,本教材中比较有特色的是关于 continuationcall/cc 的内容,这也是 Scheme 的一大特点,从这点来说有过一些编程经验(特别是Python和Javascript等动态语言)的程序员会觉得《Teach Yourself Scheme in Fixnum Days》非常适合他们,因为他们只有看一眼马上就明白了Scheme与其他语言相同的地方,因此对某些絮絮叨叨讲语法等基础知识的教程感到厌烦。而这篇文章主要是讲Scheme不同于其他编程语言的地方(不包括语法),以及这种不同是如何应用在Scheme的代码中产生神奇的效果的。当然还有一些命令行和网站CGI的东西,也许某些人希望了解一些。当然你也可以像我一样把它作为学习SICP的入门辅导书。此外,本文还可以作为MzScheme(即现在的Racket语言,之前叫PLT-Scheme)的入门教程。因为本文使用的Scheme实现即是MzScheme。希望更深入学习Racket Lisp但感觉缺乏基础的同志可以看看。

译文缘起及正名

2009年的时候heros翻译了这篇文章的一部分(至第六章未完)。2010年的时候lispor写了一份本教程的读书笔记,翻译了很多内容(而我直到2014年毕设做完也没有看到)。2012年的时候又有人试图翻译这篇文章。不过后来貌似没有下文。Scheme的R5RS规范已经在2004年被译成了中文,而这篇实践性比较强的文章却迟迟没有一个完整的中文译版。所以自己翻译了一份(前六章基本是用的hero的版本),第六章后面又自己翻译了一些,顺便把附录也翻译了。这里要特别感谢我的同学何ufo,虽然他也不是很懂Scheme,不过还是翻译了第七至第十二章,我只是对他的翻译做了一些润色和校验(你发现了其实真正由我翻译的内容不是很多,只是做了一些汇总和润色的工作而已,所以我也不敢以“译者”自居)。本人也是第一次接触Scheme,水平有限,大家多多包涵。后期的任务就是看根据lispor的笔记来校对整个译文。

《Scheme语言简明教程》这个名字已经被用滥了,我见过N篇大同小异的、国内国外的Scheme教程都是这个名字(当然它们都没怎么提continuationcall/cc)。所以这样很不利于SEO。。。。不过翻译成《N天学会Scheme》或者《无师自通Scheme语言》又好像有点太俗,而且你发现了作者很聪明的用了一个“Fixnum Day”而不是常见的21天或者3天等等,这让我这个英语水平不怎么样的人很难把意思翻译完整。暂时没想到更好的名称,先就这样吧。