This thesis wants to be a sort of basic manual for the Haskell functional programming language, which is called functional because its basic concept lies in the function, in the mathematical sense of the term. C, Java, Pascal and so on are all imperative languages, that is, they consist of sequences of commands that are rigorously executed one after the other. In Haskell, instead, being a functional language, it is the single expression that is executed, after being evaluated. The first chapter represents the real basics to start working with this program, starting with the installation up to simple codes; chapters 2 and 3 explain Haskell's syntax to be able to write functions with various constructs and the Lazy Evaluation is also introduced, a technique that allows you to work with cleaner codes and with endless lists. In Chapter 4 we talk about higher order functions, that is functions that can take other functions as parameters and / or return other functions as results, so some are presented, including those for numerical differentiation and integration. Chapter 5 explains how modules can be loaded, a Haskell module is a collection of functions, and a Haskell program is a collection of modules where the main module loads the other modules and then uses the functions defined within them to do something. It then explains how to create your own modules. In the last chapter we talk about actions, which represent values in Haskell, just as it can be in number 3 or the string '' ciao mondo '', and which allow us to interact with the world outside the program. In conclusion, the advantages of the Haskell language are exposed, of how functional programs are easier to maintain thanks to their brevity and use in different areas and in large projects including fintech, cryptocurrency, distributed IT, biotechnology, scientific information and machine learning.
Questa tesi vuole essere una sorta di manuale base per il linguaggio di programmazione funzionale Haskell, il quale è detto funzionale perché il suo concetto base risiede nella funzione, nel senso matematico del termine. C, Java, Pascal e così via sono tutti linguaggi imperativi, consistono cioè in sequenze di comandi che vengono eseguiti rigorosamente uno dopo l'altro. In Haskell, invece, essendo un linguaggio funzionale, è la singola espressione che viene eseguita, dopo essere stata valutata. Il primo capitolo rappresenta le basi vere e proprie per iniziare a lavorare con questo programma, a cominciare dall'installazione fino a semplici codici; i capitoli 2 e 3 spiegano la sintassi di Haskell per poter scrivere funzioni con vari costrutti e viene inoltre introdotta la Lazy Evaluation, una tecnica che permette di lavorare con codici più puliti e con le liste infinite. Nel Capitolo 4 si parla di funzioni di ordine superiore, cioè funzioni che possono prendere altre funzioni come parametri e/o restituire altre funzioni come risultati, ne vengono dunque presentate alcune, incluse quelle per la differenziazione e integrazione numerica. Il capitolo 5 spiega come si possono caricare dei moduli, un modulo Haskell è una collezione di funzioni, e un programma Haskell è una collezione di moduli dove il modulo principale carica gli altri moduli e quindi usa le funzioni definite dentro di essi per fare qualcosa. Viene poi spiegato come si possono creare i propri moduli. Nell'ultimo capitolo si parla di azioni , le quali rappresentano dei valori in Haskell, proprio come può essere in numero 3 o la stringa ''ciao mondo'', e che permettono di interagire con il mondo al di fuori del programma. Nella conclusione vengono esposti i vantaggi del linguaggio Haskell, di come i programmi funzionali siano più facili da manutenere grazie alla loro brevità e dell'impiego in diverse aree ed in grandi progetti tra cui fintech, criptovalute, informatica distribuita, biotecnologia, informatica scientifica e machine learning.
Basi del linguaggio di programmazione funzionale Haskell
SAVITI, EDOARDO
2018/2019
Abstract
Questa tesi vuole essere una sorta di manuale base per il linguaggio di programmazione funzionale Haskell, il quale è detto funzionale perché il suo concetto base risiede nella funzione, nel senso matematico del termine. C, Java, Pascal e così via sono tutti linguaggi imperativi, consistono cioè in sequenze di comandi che vengono eseguiti rigorosamente uno dopo l'altro. In Haskell, invece, essendo un linguaggio funzionale, è la singola espressione che viene eseguita, dopo essere stata valutata. Il primo capitolo rappresenta le basi vere e proprie per iniziare a lavorare con questo programma, a cominciare dall'installazione fino a semplici codici; i capitoli 2 e 3 spiegano la sintassi di Haskell per poter scrivere funzioni con vari costrutti e viene inoltre introdotta la Lazy Evaluation, una tecnica che permette di lavorare con codici più puliti e con le liste infinite. Nel Capitolo 4 si parla di funzioni di ordine superiore, cioè funzioni che possono prendere altre funzioni come parametri e/o restituire altre funzioni come risultati, ne vengono dunque presentate alcune, incluse quelle per la differenziazione e integrazione numerica. Il capitolo 5 spiega come si possono caricare dei moduli, un modulo Haskell è una collezione di funzioni, e un programma Haskell è una collezione di moduli dove il modulo principale carica gli altri moduli e quindi usa le funzioni definite dentro di essi per fare qualcosa. Viene poi spiegato come si possono creare i propri moduli. Nell'ultimo capitolo si parla di azioni , le quali rappresentano dei valori in Haskell, proprio come può essere in numero 3 o la stringa ''ciao mondo'', e che permettono di interagire con il mondo al di fuori del programma. Nella conclusione vengono esposti i vantaggi del linguaggio Haskell, di come i programmi funzionali siano più facili da manutenere grazie alla loro brevità e dell'impiego in diverse aree ed in grandi progetti tra cui fintech, criptovalute, informatica distribuita, biotecnologia, informatica scientifica e machine learning.File | Dimensione | Formato | |
---|---|---|---|
774251_tesi_haskell_finale.pdf
non disponibili
Tipologia:
Altro materiale allegato
Dimensione
858 kB
Formato
Adobe PDF
|
858 kB | Adobe PDF |
I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14240/43004