一个经典的编程练习是用 Lisp/Scheme 编写一个 Lisp/Scheme 解释器。可以利用完整语言的强大功能为语言的一个子集生成解释器。
Haskell 有类似的练习吗?我想使用 Haskell 作为引擎来实现 Haskell 的一个子集。当然,它 可以做,但有没有任何在线资源可查看?
我正在探索使用 Haskell 作为一种语言的想法,以探索我正在教授的 离散结构课程中的一些概念。这个学期我选定了 米兰达,一种启发了 Haskell 的小型语言。米兰达做了我想做的90% 但哈斯克尔做了2000% 。:)
因此,我的想法是创建一种语言,它具有 Haskell 的特性,我喜欢这些特性,并且不允许其他任何特性。随着学生的进步,一旦他们掌握了基础知识,我就可以有选择地“打开”各种功能。
教学“语言水平”已被成功地用于教学 爪哇咖啡和 计划。通过限制他们的能力,你可以防止他们在掌握你要教的语法和概念时搬起石头砸自己的脚。您还可以提供更好的错误消息。