2012-07-02 19 views
27

Haskell'i ilk öğrendiğimde, Haskell '98 resmi yayınlanmış dil şartnamesiydi. Bugün, o şartname Haskell 2010. (I itiraf etmeliyim ben gerçekten zor zamanlar halt farklar aslında hatırlayarak vardır.)Haskell nasıl değişti?

Şimdi Haskell bir uzun süredir olmasıdır. (Eh, hesaplama terimlerinde uzun bir zaman var.) O halde merak ettiğim şey ... Haskell'in tarihi boyunca dile yönelik herhangi bir büyük tasarım değişikliği oldu mu? Ya da tüm değişiklikler nispeten küçük mü? Bunların listesini bulabileceğim bir yer var mıdır, fark etmeden, Haskell Raporunun her bir versiyonunu okumadan ve okumadan okuyabiliyorum?

+2

(http://en.wikipedia.org/wiki/Haskell_%28programming_language%29#History), ayrıca bizi [Haskell 2010 yayın duyurusuna] götürüyor (http://www.haskell.org/pipermail/haskell/2009-November/021750 .html) Bu sürüm hakkında biraz daha fazla bilgiye sahip. – huon

+2

Tip sistemi oldukça genişlemiş. Fiili Haskell standardı, çok çeşitli dil uzantıları ile GHC'dir, çoğu bu günlerde çoğu ya da daha az standarttır. –

+0

Haskell, H98 ve Haskell 2010 arasında çok fazla değişmedi._Glasgow Haskell_ o zaman çerçevesinde büyük bir değişiklik yaptı. –

cevap

26

önemli kilometre taşları ve tasarım kararları da dahil olmak üzere dil, tarihi,

@INPROCEEDINGS{Hudak07ahistory, 
    author = {Paul Hudak and John Hughes and Simon Peyton Jones and Philip Wadler}, 
    title = {A history of Haskell: Being lazy with class}, 
    booktitle = {In Proceedings of the 3rd ACM SIGPLAN Conference on History of Programming Languages (HOPL-III}, 
    year = {2007}, 
    pages = {1--55}, 
    publisher = {ACM Press} 
} 
+0

Buna benziyor Şu anda yazılan en iyi bilgi kaynağı hakkında - ve tabii ki, diğer nedenlerle de ilginç bir okuma. Bu yüzden bu cevabı kabul edeceğim. – MathematicalOrchid

10

referans Dons verir mükemmel ve ne zaman biter kadar yetkili. İşte kafamın üst kısmındaki bazı şeyler. Bunlar, spekülasyonda yer alan şeylerin yanı sıra spekülasyonda resmi olmayan, fakat diğer derleyicilerin de sıklıkla amaçladığı GHC'nin deneysel olmayan kısımlarını dikkate alacağım şeyleri içerir. sağlamak. Bu, şu anda standart olarak değerlendirdiğimiz, ancak her zaman böyle olmayan tipler ve yalnızca kütüphaneler olarak var olabilecek diğer özellikleri içerir.

  • Hiyerarşik Modülleri
  • monad'ların
  • IO Monad
  • Do notasyonu
  • Yabancı Fonksiyon Arayüz
  • Çoklu parametre türü sınıfları
  • Temiz olmayan istisnalar
  • tiplenemeyen ve Veri
  • Genişletilebilir İstisnalar
  • Fonksiyonel bağımlılıklar
  • Tipi Fonksiyonlar
  • Eşzamanlı Haskell
  • STM
  • GADTs
  • Büyük monomorfizm Felaketi (yani monad comprehensions, listelere uzmanlaşmış harita, vb)
  • uygulamalı ve Traversable kaybı
  • Oklar/Ok Gösterimi
  • MonadFix [wiki sayfasından] üzerine çok kısa bir özet var
+0

Birçoğu HOPL kağıtta bulunduğunu unutmayın: 8.2.1 Hiyerarşik modül adları; 8.1 Yabancı Fonksiyon Arayüzü; 7.2 Monadlar; 7.3 Monadic I/O; 7.4 Sonraki gelişmeler (STM, kesin olmayan istisnalar; vb.). 6.7 GADT. HOPL bildirisinin yayınlanmasından bu yana, aileleri yazmanın gerçekten yeni bir şey olabileceğini düşünüyorum. –

+0

Haha evet, eminim ki kâğıt benim kronolojimin bir kısmından ... – sclv

+5

The Great Monomorphism Catastrophe :) en azından monofallik anlayışımız var. –