Haskell (linguaggio di programmazione): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: aggiungo template {{...}} |
|||
Riga 1:
{{Linguaggio di programmazione
|nome = Haskell
Riga 10 ⟶ 9:
|estensione = .hs, .lhs
|influenzato_da = Clean, FP, Gofer, Hope e Hope+, Id, ISWIM, KRC, [[Lisp]], Miranda, ML e Standard ML, Orwell, SASL, SISAL, [[Scheme]]
|ha_influenzato = Agda, Bluespec, [[C++11]]/Concepts, [[
|sistema_operativo = [[Multipiattaforma]]
|sito_web =[https://www.haskell.org/ Haskell Language]
Riga 17 ⟶ 16:
== Storia ==
=== L'inizio della programmazione funzionale ===
{{Per approfondire|Programmazione funzionale}}Tutto iniziò nel [[1978]] con il discorso di John Backus intitolato ''"Can Programming be liberated from the Von Neumann style?"''<ref>[http://worrydream.com/refs/Backus-CanProgrammingBeLiberated.pdf Can Programming Be Liberated from Von Neumann Style?]</ref> con il quale si proponeva la programmazione funzionale non solo come una mera curiosità matematica, bensì anche per scopi industriali.
Tra gli anni [[Anni 1970|settanta]] ed [[Anni 1980|ottanta]] del [[XX secolo]], vennero implementati diversi linguaggi funzionali, seppur ancora strettamente legati ai linguaggi imperativi, che si basavano più sul concetto computazionale del [[lambda calcolo]]. Alcuni esempi possono essere [[Scheme]], e i vari dialetti [[ML (linguaggio di programmazione)|ML]] di questo periodo.
Nello stesso periodo, venne formulata la [[valutazione lazy|valutazione pigra]] (lazy evaluation, call-by-need) grazie alla pubblicazione di alcuni saggi. In seguito, questo nuovo sistema di valutazione, venne implementata in [[LazyML]], [[Clean (linguaggio)|Clean]], [[Daisy (linguaggio)|Daisy]], [[Orwell (linguaggio)|Orwell]].
=== Haskell ===
Riga 36 ⟶ 34:
* Basato su idee con ampio consenso;
* Ridurre la diversità nei linguaggi funzionali.
Dopo due anni, cioè il 1º aprile [[1990]], venne pubblicata la prima versione del linguaggio che verrà chiamata Haskell 1.0 in onore a [[Haskell Curry]], e l'inizio della pubblicazione inizia proprio con una citazione del famoso matematico statunitense<ref>{{Pdf|sorgente = [https://www.haskell.org/definition/haskell-report-1.0.ps.gz Report of the Programming Language Haskell A Non-Strict, Purely Functional Language, Version 1.0, 1 April 1990]}} {{Cita web|autore = |url = https://www.haskell.org/definition/haskell-report-1.0.ps.gz|titolo = Report of the Programming Language Haskell A Non-Strict, Purely Functional Language, Version 1.0|accesso = |data = 1990}}
=== Haskell 98 ===
Dopo numerose versioni (1.1, 1.2, 1.3, 1.4) che si susseguirono tra il [[1988|1990]] ed il [[1998]], c'era il bisogno di creare una versione stabile, considerato che i numerosi problemi che affliggevano il linguaggio, come quelli relativi all [[Input/output|I/O]], erano stati superati.
Nel [[1998]] fu pubblicato ''"The Haskell 98 Report: Language and Libraries"''<ref name=":0">{{Cita web|url = https://www.haskell.org/onlinereport/|titolo = The Haskell 98 Language Report|accesso = 30 gennaio 2016|sito = www.haskell.org}}</ref>, che contiene la descrizione dello standard e di alcune librerie, il quale verrà ulteriormente revisionato da Simon Peyton Jones e ripubblicato nel [[2002]].
=== Haskell 2010 ===
Nel [[2006]] fu creato il comitato '''Haskell Prime''' ('''Haskell'''')<ref>{{Cita web|url = https://prime.haskell.org/|titolo = Haskell Prime|accesso = 31 gennaio 2016|sito = prime.haskell.org}}</ref>, il cui scopo è di produrre una revisione dello standard del 1998.
Nel [[2009]] è stata annunciata una nuova versione di Haskell chiamato Haskell 2010<ref>{{Cita web|nome = Simon|cognome = Marlow|url = https://mail.haskell.org/pipermail/haskell/2009-November/021750.html|titolo = [Haskell] Announcing Haskell 2010|accesso = 30 gennaio 2016|data = 24 novembre 2009}}</ref>. Le modifiche principali apportate furono la rimozione dell'''n+k pattern'' e l'implementazione di numerose espressioni semplificate o anche chiamate [[zucchero sintattico]] (''syntactic sugar''), come la notazione ''do'', le ''guards'', l'espressione ''if then else''.
== Caratteristiche ==
=== Valutazione Lazy ===
{{Per approfondire|Valutazione lazy}}
Riga 57 ⟶ 54:
=== Puramente funzionale ===
{{...}}
== Codice di esempio ==
Riga 135 ⟶ 133:
== Applicazioni ==
=== Industriali ===
Alcune delle principali aziende in cui viene utilizzato Haskell:<ref>{{Cita web|url = https://wiki.haskell.org/Haskell_in_industry|titolo = Haskell in industry - HaskellWiki|accesso = 25 gennaio 2016|sito = wiki.haskell.org}}</ref>
Riga 166 ⟶ 163:
== Note ==
== Bibliografia ==
Riga 173 ⟶ 170:
== Voci correlate ==
=== Concetti correlati ===
* [[Linguaggio di programmazione]]
* [[Programmazione funzionale]]
* [[Tipizzazione forte]]
Riga 208 ⟶ 203:
=== Community ===
* {{Cita web|autore = |url = https://mail.haskell.org/pipermail/haskell-cafe/|titolo = Haskell-Cafe Archives|accesso = |data = }}
* {{Cita web|autore = |url = https://mail.haskell.org/pipermail/haskell/|titolo = Haskell Archives|accesso = |data = }}
* {{Cita web|autore = |url = https://planet.haskell.org/|titolo = Planet Haskell|accesso = |data = }}
{{Principali linguaggi di programmazione}}
|