PRE:Write Yourself a Scheme in 48 Hours是我觉得比较好的教程之一,我想翻译它,借此留下我学习的痕迹,并能够与大家交流,希望大家指正。
-------------------------------------------------------------------------------------------
1
、概论
大多数网络上的
Haskell
教程看起来用一种语言参考手册的方式去教学。它们告诉你语言的语法,一些语言构造,然后让你在交互式提示
(interactive
prompt)
前写一些简单的函数。那些如何写一个函数式的,有用的程序的“硬石头”给留在了最后面,甚至有时候被完全忽略了。
这个教程将用一种不同的方式。你会从处理和解析命令行参数,写一个完全函数式的
Scheme
解释器开始。这个解释器将实现大部分
R5RS
Scheme
。一路上,你将学习
Haskell
的
I/O
,可变的状态,动态类型,错误处理以及解析的各种特征。当你完成这个教程的时候,你应该对
Haskell
和
Scheme
相当熟练了:)
这个教程主要面向两大读者群:
-
那些已经知道
Lisp
或
Scheme
而且想要学习
Haskell
的人
-
那些不懂任何编程语言,但是有大量背景知识并且对计算机非常熟悉的人
第二种读者会发现这个教程很有挑战性,因为我为了集中注意力在
Haskell
上掩藏了很多
Scheme
和一些编程的概念。一些好的图书像
SICP
或者
The
Little Schemer
会对这里非常有帮助。
那些使用像
C,
Java,
Python
的面向过程或面向对象语言的用户需要注意了:你们要忘掉大多数你已经知道的编程知识。
Haskell
完全不同于上述的语言,并且需要一种不懂的方式来思考编程。最好用一种空白的状态来投入这个教程并且不要尝试将
Haskell
同命令式语言进行比较,因为大多数命令式语言中的概念
(classes,
functions, 'return')
在
Haskell
有完全不同的含义。
因为每一课都建立在之前完成的代码的基础上,所以最好按顺序学习这些课。
这个教程假定你用
GHC
作为你的
Haskell
编译器。你或许能用
Hugs
,但这完全没有被测试过,可能你需要下载一些附加的库。
分享到:
相关推荐
Write a Scheme interpreter in Haskell step by step.
《Teach Yourself Scheme in Fixnum Days》是一本关于Scheme编程语言的自学教程,本书内容涵盖了从基础到高级的多个知识点,致力于让读者在有限的天数内掌握Scheme编程。在进行知识点梳理之前,我们先对文档内容进行...
《Teach Yourself Scheme in Fixnum Days》是一本由Dorai Sitaram编写的经典书籍,旨在教授读者如何在有限的时间内掌握Scheme编程语言。Scheme是Lisp家族的一种方言,以其简洁性和灵活性而著称,是计算机科学教育和...
《Teach Yourself Scheme in Fixnum Days》是一本详尽的教程,旨在帮助读者在有限的时间内掌握Scheme语言的基础及进阶知识。此书由Dorai Sitaram撰写,并且在网络上部分中文翻译已经存在(参考链接:...
Chapters are organized as a series of groups, or "layers," each of which advances the reader to a new level in Scheme. The first layer (chapters 2-7) introduces Scheme procedures - how to define, use,...
编写自己的方案无编译器错误“为自己编写一个计划”教程,其中包含一些微不足道的修改。 涉及 Read 类型类的错误非常令人分心; 我已经在listing7.hs、listing8.hs 等中留下了关于重叠模式匹配的警告,因为它只是一...
scheme语言相关的学习资料: guide_racket_scheme.pdf Lisp之根源.pdf Racket图文教程.pdf scheme-primer.pdf ...The_Little_Schemer.pdf ...Write_Yourself_a_Scheme_in_48_Hours.pdf The+Seasoned+Schemer.pdf
标题 "write-yourself-a-scheme:48小时内为自己编写计划的游乐场" 指的是一项挑战,旨在引导参与者在48小时内学习并实现Scheme语言的一个简易解释器。这是一个编程项目,通过它,开发者可以深入理解编程语言的内部...
"A Preprocessing Scheme for High-Cardinality Categorical Attributes"这个主题探讨的就是如何有效地处理这类问题。 一、高基数类别变量的挑战 1. 维度灾难:高基数会导致数据的维度增加,这可能会引起过拟合,...
(How to Write a (Lisp) Interpreter (in Python))和(An ((Even Better) Lisp) Interpreter (in Python))的翻译,对解释器实现原理和函数式编程敢兴趣的可以下载看看!
### 一种非采样轮廓域中的新型彩色图像水印方案 #### 概述 本文介绍了一种基于非采样轮廓变换(NSCT)和支持向量回归(SVR)技术的新型彩色图像水印算法。该算法针对几何畸变攻击具有良好的抵抗能力,能够在保持...
This thoroughly updated edition of The Scheme Programming Language provides an introduction to Scheme and a definitive reference for standard Scheme, presented in a clear and concise manner....
scheme语言的解释器scheme48
标题 "scheme_in_forth.tar_in_scheme_forth_源码" 提供的信息表明,这是一个关于用Forth语言实现Scheme解释器的项目。Forth是一种结构简单、效率高的编程语言,而Scheme是Lisp家族的一种方言,以其简洁的语法和强大...
《A Tour of Scheme in Gambit》是一份详尽的指南,旨在介绍如何在Gambit-C解释器中使用Scheme语言进行编程。这份文档由Mikael More撰写,并且允许免费无限传播,前提是保留原有的版权信息。文档提供了PDF、HTML和...
针对802.11n的聚合机制,提出一种解决方法:In this paper, we proposed an A-MSDU frame aggregation with sub-frame integrity check and retransmission at the MSDU level without altering the original MAC ...
1. **注册scheme**:在iOS的Info.plist文件中,开发者需要添加`CFBundleURLTypes`和`CFBundleURLSchemes`键值对,声明自己的scheme。在Android的`AndroidManifest.xml`中,通过`<data>`标签在`<intent-filter>`内...