Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How has Haskell changed?

Tags:

haskell

When I first learned Haskell, Haskell '98 was the official published language specification. Today, that specification is Haskell 2010. (I have to admit, I have a really hard time remembering what the heck the differences actually are.)

Now Haskell has been around for a long time. (Well, in computing terms it's a long time.) So what I'm wondering is... Have there been any major design changes to the language over Haskell's history? Or have all the changes been relatively minor? Is there somewhere I can find a list of these, without sitting down and reading through every version of the Haskell Report trying to spot the differences?

like image 345
MathematicalOrchid Avatar asked Jul 02 '12 14:07

MathematicalOrchid


People also ask

What is the future of Haskell?

Originally Answered: What is the future of Haskell? Most likely: perpetual obscurity. The history of new programming languages is that almost all never make it to popularity.

Where was Haskell developed?

The first milestone in the History of Haskell is dedicated to the FPCA '87 conference, which was held in Portland, Oregon. A committee was organized there, with the goal to create a language that would take into account all the problems of other disparate functional languages.


2 Answers

The history of the language, including major milestones and design decisions, is described in

  • A History of Haskell: being lazy with class.
@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} } 
like image 192
Don Stewart Avatar answered Sep 25 '22 03:09

Don Stewart


The reference Dons gives is excellent and authoritative up to when it ends. Here's some stuff off the top of my head -- which includes things that made into the spec as well as things that aren't officially in the spec but which I'd consider non-experimental parts of GHC that other compilers also often aim to provide. This also includes typeclasses and other features we now consider standard but which weren't always so, but which can exist purely as libraries.

  • Hierarchical Modules
  • Monads
  • The IO Monad
  • Do notation
  • The Foreign Function Interface
  • Multi-parameter type classes
  • Imprecise exceptions
  • Typeable and Data
  • Extensible Exceptions
  • Functional Dependencies
  • Type Functions
  • Concurrent Haskell
  • STM
  • GADTs
  • The Great Monomorphism Catastrophe (i.e. loss of monad comprehensions, map specialized to lists, etc.)
  • Applicative and Traversable
  • Arrows/Arrow Notation
  • MonadFix
like image 36
sclv Avatar answered Sep 25 '22 03:09

sclv