一个经典的编程练习是用Lisp / Scheme编写Lisp / Scheme解释器。可以利用完整语言的功能为该语言的子集生成解释器。
Haskell有类似的练习吗?我想使用Haskell作为引擎来实现Haskell的子集。当然可以做到,但是有没有在线资源可供参考?
这是背景故事。
我正在探索使用Haskell作为语言来探索我正在教授的“ 离散结构”课程中的某些概念的想法。在本学期,我选择了米兰达语,这是一种较小的语言,启发了Haskell。Miranda完成了大约90%的工作,但是Haskell完成了大约2000%的工作。:)
所以我的想法是创建一种语言,该语言具有我想要的Haskell的功能,而不允许其他所有功能。随着学生的进步,一旦他们掌握了基础知识,我就可以有选择地“打开”各种功能。
教学“语言水平”已成功用于教授Java和Scheme。通过限制他们可以做的事情,可以防止他们在他们仍在掌握要教的语法和概念的同时向自己开枪。并且您可以提供更好的错误消息。