Elm (linguaggio di programmazione): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: passaggio degli url da HTTP a HTTPS |
Recupero di 8 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0 |
||
Riga 22:
== Storia ==
Elm è stato progettato inizialmente da Evan Czaplicki come progetto di tesi nel 2012.<ref>[https://elm-lang.org/assets/papers/concurrent-frp.pdf Elm: Concurrent FRP for Functional GUIs]</ref> I primo rilascio di Elm era accompagnato da molti esempi e da un editor online che rendeva facile provare il linguaggio in un browser Web.<ref>{{Cita web |url=https://elm-lang.org/try# |titolo=Elm's Online Editor |accesso=4 gennaio 2017 |urlarchivio=https://web.archive.org/web/20170521144831/http://elm-lang.org/try# |dataarchivio=21 maggio 2017 |urlmorto=sì }}</ref> Evan Czaplicki è entrato a far parte di [[Prezi]] nel 2013 per lavorare su Elm,<ref>
L'implementazione iniziale del compilatore Elm genera codice HTML, CSS, e JavaScript.<ref>[https://github.com/elm-lang/Elm Elm compiler source code]</ref> L'insieme di strumenti di base si è continuato a espandere, e adesso comprende un [[interprete interattivo]],<ref>
== Caratteristiche ==
Elm ha un insieme piccolo ma espressivo di costrutti linguistici, tra cui espressioni `if`, espressioni `let`, espressioni `case`, funzioni anonime, e interpolazioni di lista.<ref name="syntax">
=== Immutabilità ===
Riga 39:
* tipi primitivi come interi e stringhe
* strutture dati di base come liste, ennuple, e record estendibili
* tipi personalizzati, chiamati `unioni taggate` che consentono di costruire tipi interamente nuovi <ref>{{Cita web|titolo=Model The Problem|url=https://elm-lang.org/guide/model-the-problem|sito=Elm|accesso=4 maggio 2016|cid=tagged-unions|urlarchivio=https://web.archive.org/web/20160509201212/http://elm-lang.org/guide/model-the-problem|dataarchivio=9 maggio 2016|urlmorto=sì}}</ref>
Elm supporta anche la completa inferenza di tipo, così che il compilatore possa verificare che un programma sia type-safe anche senza annotazioni di tipo.
Riga 51:
Elm usa un'astrazione chiamata "porte" per comunicare con [[JavaScript]].<ref>{{Cita web |url=https://elm-lang.org/learn/Ports.elm |titolo=Ports |accesso=4 gennaio 2017 |urlarchivio=https://web.archive.org/web/20160313045712/http://elm-lang.org/learn/ports.elm |dataarchivio=13 marzo 2016 |urlmorto=sì }}</ref> Consente ai valori di fluire dentro e fuori da programmi Elm, rendendo possibile comunicare fra Elm e JavaScript.
Elm ha una libreria chiamata "elm-html", che i programmatori possono usare per specificare codice HTML e CSS dall'interno di Elm.<ref>[https://package.elm-lang.org/packages/evancz/elm-html/latest/ elm-html documentation]</ref> Usa un approccio al [[DOM virtuale]] per rendere efficienti gli aggiornamenti.<ref>
== Limitazioni ==
Riga 62:
* [https://github.com/elm-lang/elm-platform Piattaforma Elm] per installare localmente gli strumenti di base
* [https://web.archive.org/web/20170503192633/http://debug.elm-lang.org/ Debugger che viaggia nel tempo]
* [https://web.archive.org/web/20160312041030/http://elm-lang.org/
* [https://package.elm-lang.org/packages/elm-lang/core/latest/ Librerie di base] e [https://web.archive.org/web/20150211183935/http://package.elm-lang.org/packages/ librerie della comunità]
| |||