`
tangtong
  • 浏览: 62903 次
  • 来自: ...
社区版块
存档分类
最新评论

Write Yourself a Scheme in 48 Hours(1)

阅读更多

 

PRE:Write Yourself a Scheme in 48 Hours是我觉得比较好的教程之一,我想翻译它,借此留下我学习的痕迹,并能够与大家交流,希望大家指正。

-------------------------------------------------------------------------------------------

 

1 、概论

大多数网络上的 Haskell 教程看起来用一种语言参考手册的方式去教学。它们告诉你语言的语法,一些语言构造,然后让你在交互式提示 (interactive prompt) 前写一些简单的函数。那些如何写一个函数式的,有用的程序的“硬石头”给留在了最后面,甚至有时候被完全忽略了。

这个教程将用一种不同的方式。你会从处理和解析命令行参数,写一个完全函数式的 Scheme 解释器开始。这个解释器将实现大部分 R5RS Scheme 。一路上,你将学习 Haskell I/O ,可变的状态,动态类型,错误处理以及解析的各种特征。当你完成这个教程的时候,你应该对 Haskell Scheme 相当熟练了:)

这个教程主要面向两大读者群:

  1. 那些已经知道 Lisp Scheme 而且想要学习 Haskell 的人

  2. 那些不懂任何编程语言,但是有大量背景知识并且对计算机非常熟悉的人

第二种读者会发现这个教程很有挑战性,因为我为了集中注意力在 Haskell 上掩藏了很多 Scheme 和一些编程的概念。一些好的图书像 SICP 或者 The Little Schemer 会对这里非常有帮助。

那些使用像 C, Java, Python 的面向过程或面向对象语言的用户需要注意了:你们要忘掉大多数你已经知道的编程知识。 Haskell 完全不同于上述的语言,并且需要一种不懂的方式来思考编程。最好用一种空白的状态来投入这个教程并且不要尝试将 Haskell 同命令式语言进行比较,因为大多数命令式语言中的概念 (classes, functions, 'return') Haskell 有完全不同的含义。

因为每一课都建立在之前完成的代码的基础上,所以最好按顺序学习这些课。

这个教程假定你用 GHC 作为你的 Haskell 编译器。你或许能用 Hugs ,但这完全没有被测试过,可能你需要下载一些附加的库。

 

分享到:
评论

相关推荐

    Write Yourself a Scheme in 48 Hours

    Write a Scheme interpreter in Haskell step by step.

    Teach Yourself Scheme in Fixnum Days

    《Teach Yourself Scheme in Fixnum Days》是一本关于Scheme编程语言的自学教程,本书内容涵盖了从基础到高级的多个知识点,致力于让读者在有限的天数内掌握Scheme编程。在进行知识点梳理之前,我们先对文档内容进行...

    Teach.Yourself.Scheme.in.Fixnum.Days

    《Teach Yourself Scheme in Fixnum Days》是一本由Dorai Sitaram编写的经典书籍,旨在教授读者如何在有限的时间内掌握Scheme编程语言。Scheme是Lisp家族的一种方言,以其简洁性和灵活性而著称,是计算机科学教育和...

    Mit.Press-Teach.Yourself.Scheme.pdf (英文)

    《Teach Yourself Scheme in Fixnum Days》是一本详尽的教程,旨在帮助读者在有限的时间内掌握Scheme语言的基础及进阶知识。此书由Dorai Sitaram撰写,并且在网络上部分中文翻译已经存在(参考链接:...

    Programming In Scheme

    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,...

    write-yourself-a-scheme-no-compiler-errors:与“Write Yourself a Scheme”相关的源代码简单地修改为使用最近的 ghcs 编译

    编写自己的方案无编译器错误“为自己编写一个计划”教程,其中包含一些微不足道的修改。 涉及 Read 类型类的错误非常令人分心; 我已经在listing7.hs、listing8.hs 等中留下了关于重叠模式匹配的警告,因为它只是一...

    scheme语言学习资料集合

    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小时内为自己编写计划的游乐场

    标题 "write-yourself-a-scheme:48小时内为自己编写计划的游乐场" 指的是一项挑战,旨在引导参与者在48小时内学习并实现Scheme语言的一个简易解释器。这是一个编程项目,通过它,开发者可以深入理解编程语言的内部...

    A Preprocessing Scheme for High-Cardinality Categorical Attributes

    "A Preprocessing Scheme for High-Cardinality Categorical Attributes"这个主题探讨的就是如何有效地处理这类问题。 一、高基数类别变量的挑战 1. 维度灾难:高基数会导致数据的维度增加,这可能会引起过拟合,...

    (How to Write a (Lisp) Interpreter (in Python))中文版(包括上下篇)

    (How to Write a (Lisp) Interpreter (in Python))和(An ((Even Better) Lisp) Interpreter (in Python))的翻译,对解释器实现原理和函数式编程敢兴趣的可以下载看看!

    A novel color image watermarking scheme in nonsampled contourlet-domain

    ### 一种非采样轮廓域中的新型彩色图像水印方案 #### 概述 本文介绍了一种基于非采样轮廓变换(NSCT)和支持向量回归(SVR)技术的新型彩色图像水印算法。该算法针对几何畸变攻击具有良好的抵抗能力,能够在保持...

    Dybvig. The Scheme Programming Language

    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语言的解释器scheme48

    scheme_in_forth.tar_in_scheme_forth_源码

    标题 "scheme_in_forth.tar_in_scheme_forth_源码" 提供的信息表明,这是一个关于用Forth语言实现Scheme解释器的项目。Forth是一种结构简单、效率高的编程语言,而Scheme是Lisp家族的一种方言,以其简洁的语法和强大...

    A_Tour_of_Scheme_in_Gambit

    《A Tour of Scheme in Gambit》是一份详尽的指南,旨在介绍如何在Gambit-C解释器中使用Scheme语言进行编程。这份文档由Mikael More撰写,并且允许免费无限传播,前提是保留原有的版权信息。文档提供了PDF、HTML和...

    A_Reliale A-MSDU Frame Aggregation scheme in 802.11n

    针对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 ...

    scheme实现唤醒外部app

    1. **注册scheme**:在iOS的Info.plist文件中,开发者需要添加`CFBundleURLTypes`和`CFBundleURLSchemes`键值对,声明自己的scheme。在Android的`AndroidManifest.xml`中,通过`<data>`标签在`<intent-filter>`内...

Global site tag (gtag.js) - Google Analytics