Write Yourself a Scheme in 48 Hours(1)

本教程采用不同寻常的方法,通过创建一个Scheme解释器来教授Haskell。过程中将涉及I/O操作、状态管理、动态类型等核心概念。适合已有Lisp/Scheme基础或计算机背景浓厚的学习者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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 ,但这完全没有被测试过,可能你需要下载一些附加的库。

 

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值