# Scheme語言簡明教程
> 譯者:[songjinghe](https://github.com/songjinghe)
> 來源:[TYS-zh-translation](https://github.com/songjinghe/TYS-zh-translation)
### 譯:Teach Yourself Scheme in Fixnum Days
[View On GitHub](https://github.com/songjinghe/TYS-zh-translation "markdown源碼") | [下載中文翻譯ZIP](https://github.com/songjinghe/TYS-zh-translation/archive/gh-pages.zip "HTML格式") | [英文原文online](http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html) | [反饋問題](https://github.com/songjinghe/TYS-zh-translation/issues "issue")
這是一本在國外比較有名的Scheme編程語言的入門教材。本教材適合任何對Scheme編程語言感興趣的人閱讀,尤其是有其他編程語言(特別是動態語言)編程經驗,希望快速了解Scheme的不同點并且快速上手寫點東西的人。然而希望系統學習Scheme編程的學生仍然是本文的讀者之一。
該教程中的大部分內容都能在常見的Scheme入門教材中找到,本教材中比較有特色的是關于`continuation`和`call/cc`的內容,這也是Scheme的一大特點。第十三章很詳細的講解了`continuation`和`call/cc`,十四十五章是它們的應用。然而由于本人理解不夠深入,這部分(其實整個文章都是)翻譯得不堪卒讀,所以有問題請對照英文原文理解,也歡迎大家的[反饋](https://github.com/songjinghe/TYS-zh-translation/issues "issue")!
2009年的時候[heros](http://www.cnblogs.com/heros/category/225196.html)翻譯了這篇文章的一部分(至第六章未完)。2010年的時候[lispor](http://lispor.is-programmer.com/tag/Scheme%E7%AC%94%E8%AE%B0)寫了一份本教程的讀書筆記。2012年的時候又有人試圖翻譯這篇文章。不過后來貌似沒有下文。Scheme的R5RS規范已經在2004年被譯成了中文,而這篇實踐性比較強的文章卻沒有完整的中文譯版。所以自己翻譯了一份(前六章基本是用的hero的版本),本人也是第一次接觸Scheme,水平有限,大家多多包涵。
### 目 錄
* [【譯者】關于本文](about.md)
* [前言](000-preface.md)
* [第一章:進入Scheme](010-enter-scheme.md)
* [第二章:數據結構](020-data-types.md)
* [第三章:代碼結構](030-forms.md)
* [第四章:條件語句](040-conditionals.md)
* [第五章:詞法變量](050-lexical-variables.md)
* [第六章:遞歸](060-recursion.md)
* [第七章:輸入輸出](070-io.md)
* [第八章:宏](080-macros.md)
* [第九章:結構](090-structures.md)
* [第十章:關聯列表和表格](100-alists-and-tables.md)
* [第十一章:系統接口](110-system-interface.md)
* [第十二章:對象和類](120-objects-and-classes.md)
* [第十三章:跳轉](130-jumps.md)
* [第十四章:不確定性](140-nondeterminism.md)
* [第十五章:引擎](150-engines.md)
* [第十六章:命令行腳本](160-shell-scripts.md)
* [第十七章:CGI腳本](170-cgi-scripts.md)
* [附錄 A:Scheme方言](200-appendix-a-scheme-dialects.md)
* [附錄 B:DOS批處理](300-appendix-b-dos-batch-file.md)
* [附錄 C:數值運算](400-appendix-c-numerical-techniques.md)
* [附錄 D:可設為infinity的時鐘](500-appendix-d-clock-for-infinity.md)
* [附錄 E:參考文獻](600-appendix-e-references.md)
* [附錄 F:索引](700-appendix-f-index.md)
* [無關的:論Java語言符號表設計時的一些問題](888-java-symbol-table.md)
### 許可(License)
本譯文的發布遵循與英文原文相同的LICENSE(即 [GNU Lesser General Public License](http://www.gnu.org/licenses/lgpl.html))。如有問題,請聯系我。
This translated version is published under the same license(viz, the [LGPL license](http://www.gnu.org/licenses/lgpl.html)) of the orginal english version. If you have any question, please contact me.