Klasik bir programlama alıştırması, Lisp / Scheme'de bir Lisp / Scheme yorumlayıcısı yazmaktır. Tam dilin gücü, dilin bir alt kümesi için bir tercüman üretmek için kullanılabilir.
Haskell için benzer bir egzersiz var mı? Motor olarak Haskell'i kullanarak Haskell'in bir alt kümesini uygulamak istiyorum. Tabii ki olabilir yapılır, ancak herhangi bir çevrimiçi kaynaklar bakmak için kullanılabilir bir hale gelmesine?
İşte arka plan.
Öğrettiğim Kesikli Yapılar dersindeki bazı kavramları keşfetmek için Haskell'i bir dil olarak kullanma fikrini araştırıyorum . Bu dönem için Haskell'e ilham veren daha küçük bir dil olan Miranda'ya karar verdim . Miranda, benim yapmasını istediğim şeyin yaklaşık% 90'ını yapıyor, ancak Haskell yaklaşık% 2000 yapıyor. :)
Benim fikrim, tam olarak Haskell'in istediğim ve diğer her şeye izin vermediğim özelliklerine sahip bir dil yaratmak. Öğrenciler ilerledikçe, temel konularda ustalaştıklarında çeşitli özellikleri seçerek "açabiliyorum".
Pedagojik "dil seviyeleri" Java ve Şema öğretmek için başarıyla kullanılmıştır . Yapabileceklerini sınırlayarak, öğretmeye çalıştığınız sözdizimi ve kavramlarda ustalaşırken, kendilerini ayağından vurmalarını engelleyebilirsiniz. Ve daha iyi hata mesajları sunabilirsiniz.