Klasycznym ćwiczeniem programistycznym jest napisanie interpretera Lisp / Scheme w Lisp / Scheme. Możliwości pełnego języka można wykorzystać do stworzenia tłumacza dla podzbioru języka.
Czy jest podobne ćwiczenie dla Haskella? Chciałbym zaimplementować podzbiór Haskell, używając Haskella jako silnika. Oczywiście można to zrobić, ale czy są dostępne do obejrzenia jakieś zasoby online?
Oto historia.
Badam ideę wykorzystania języka Haskell jako języka, aby zgłębić niektóre pojęcia z kursu o Strukturach Dyskretnych, którego prowadzę. W tym semestrze zdecydowałem się na Mirandę , mniejszy język, który zainspirował Haskella. Miranda robi około 90% tego, co bym chciał, ale Haskell około 2000%. :)
Więc moim pomysłem jest stworzenie języka, który ma dokładnie te cechy Haskella, które mi się podobają i nie dopuszcza wszystkiego innego. W miarę postępów uczniów mogę selektywnie „włączać” różne funkcje po opanowaniu podstaw.
Pedagogiczne „poziomy językowe” są z powodzeniem wykorzystywane do nauczania języka Java i Scheme . Ograniczając ich możliwości, możesz uniemożliwić im strzelanie sobie w stopę, podczas gdy nadal opanowują składnię i koncepcje, których próbujesz nauczyć. Możesz zaoferować lepsze komunikaty o błędach.