고전적인 프로그래밍 연습은 Lisp / Scheme에서 Lisp / Scheme 인터프리터를 작성하는 것입니다. 전체 언어의 힘을 활용하여 언어의 하위 집합에 대한 인터프리터를 생성 할 수 있습니다.
Haskell에 대한 유사한 운동이 있습니까? Haskell을 엔진으로 사용하여 Haskell의 하위 집합을 구현하고 싶습니다. 물론 할 수 있지만 볼 수있는 온라인 리소스가 있습니까?
여기 뒷이야기가 있습니다.
저는 제가 가르치고 있는 이산 구조 과정의 일부 개념을 탐구하기 위해 Haskell을 언어로 사용하는 아이디어를 탐구하고 있습니다 . 이번 학기 동안 저는 Haskell에 영감을 준 작은 언어 인 Miranda에 정착했습니다 . Miranda는 내가 원하는 작업의 약 90 %를 수행하지만 Haskell은 약 2000 %를 수행합니다. :)
그래서 내 생각은 내가 원하고 다른 모든 것을 허용하지 않는 Haskell의 기능을 정확히 가진 언어를 만드는 것입니다. 학생들이 발전함에 따라 기본 사항을 익히면 다양한 기능을 선택적으로 "켜기"수 있습니다.
Java 및 Scheme 을 가르치는 데 교육 학적 "언어 수준"이 성공적으로 사용되었습니다 . 그들이 할 수있는 일을 제한함으로써, 그들이 가르치려고하는 구문과 개념을 마스터하는 동안 그들이 스스로 발을 쏘는 것을 방지 할 수 있습니다. 또한 더 나은 오류 메시지를 제공 할 수 있습니다.