GNU/Linux >> Linux Esercitazione >  >> Linux

Introduzione al linguaggio di programmazione Haskell

Haskell è un linguaggio di programmazione avanzato, puramente funzionale e generico. Questa guida spiega come installare Haskell e come iniziare con il linguaggio di programmazione Haskell in sistemi operativi simili a Unix. Haskell può essere installato in tre modi; installazione manuale, utilizzo dello stack e piattaforma Haskell. L'installazione di Haskell tramite stack è il metodo ufficialmente consigliato e più semplice finora. In questa guida vedremo come installare Haskell e come iniziare a utilizzare il linguaggio di programmazione Haskell in sistemi simili a Unix.

Installa lo stack di strumenti Haskell

Haskell Tool Stack è un programma multipiattaforma per la creazione di progetti Haskell. Con Haskell Stack otteniamo un ambiente di sviluppo completo per Haskell. Utilizzando lo stack di strumenti Haskell, possiamo installare facilmente i seguenti componenti:

  • Impila :un costruttore di progetti per progetti Haskell multi-pacchetto,
  • GHC :un compilatore e interprete per i programmi Haskell,
  • Eglefino :un generatore di documentazione per i pacchetti Haskell,
  • E migliaia di pacchetti possono essere installati su richiesta.

Innanzitutto, installiamo lo stack Haskell usando il comando:

$ wget -qO- https://get.haskellstack.org/ | sh

Oppure,

$ curl -sSL https://get.haskellstack.org/ | sh

I comandi precedenti scaricheranno l'ultima versione dello Stack e la installeranno immediatamente.

Questi comandi sono gli stessi per quasi tutte le distribuzioni Linux e FreeBSD. Tuttavia, la community di Arch mantiene una versione ufficiale nella [community] deposito. Quindi, se stai utilizzando Arch Linux e/o qualsiasi sistema basato su Arch, esegui semplicemente il comando seguente per installare l'ultima versione stabile dello Stack.

$ sudo pacman -S stack

Una volta installato, esegui il comando seguente per impostare la variabile di ambiente PATH in modo da includere $HOME/.local/bin :

$ echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc

Aggiorna le modifiche apportate al file ~/.bashrc usando il comando:

$ source ~/.bashrc

Vediamo la versione installata di Stack:

$ stack --version
Version 1.6.1, Git revision f25811329bbc40b0c21053a8160c56f923e1201b (5435 commits) x86_64 hpack-0.20.0

Per aggiornare Stack in qualsiasi momento, esegui:

$ stack upgrade

Per aggiornare l'indice del pacchetto, esegui:

$ stack upgrade

Abbiamo installato Stack. Andiamo avanti e creiamo un nuovo progetto.

Impostazione di un nuovo progetto

Per avviare il nostro nuovo progetto, abbiamo bisogno di alcuni file come del codice sorgente haskell, un package.yaml, uno stack.yaml e un file .cabal e poche altre directory. Possiamo creare questi file manualmente. Tuttavia, Haskell ha molti modelli predefiniti. Quindi, possiamo usarne uno invece di crearli manualmente.

Per elencare tutti i modelli disponibili, esegui:

$ stack templates

Ora creerò un nuovo progetto chiamato "otechnix" e usa "nuovo-modello" . Per farlo, esegui:

$ stack new ostechnix new-template

L'output di esempio sarebbe:

Downloading template "new-template" to create project "ostechnix" in ostechnix/ ...

The following parameters were needed by the template but not provided: author-email, author-name, category, copyright, github-username
You can provide them in /home/sk/.stack/config.yaml, like this:
templates:
 params:
 author-email: value
 author-name: value
 category: value
 copyright: value
 github-username: value
Or you can pass each one as parameters like this:
stack new ostechnix new-template -p "author-email:value" -p "author-name:value" -p "category:value" -p "copyright:value" -p "github-username:value"

Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- ostechnix/

Selecting the best among 12 snapshots...

Downloaded lts-10.0 build plan. 
Populated index cache. 
* Matches lts-10.0

Selected resolver: lts-10.0
Initialising configuration using resolver: lts-10.0
Total number of user packages considered: 1
Writing configuration to file: ostechnix/stack.yaml
All done.

Installazione di GHC

Vai alla directory del progetto appena creato ed esegui il download 'stack setup' e installa il compilatore richiesto.

$ cd ostechnix/
$ stack setup

Questo comando installerà il compilatore GHC corretto nel tuo nuovo progetto Haskell. GHC sarà installato in una posizione isolata. Ciò significa che ciò non interferirà con alcuna installazione a livello di sistema.

Tieni presente che GHC verrà installato nella directory principale dello stack globale. Quindi, non puoi semplicemente chiamarlo dalla tua shell usando il comando ghc . Considera invece l'utilizzo di:stack ghc , impila ghci , impila runghc o stack exec . Per maggiori informazioni sui percorsi, corri:

$ stack path

e..

$ stack exec env

Ora abbiamo creato un nuovo progetto e installato il compilatore corretto per il nostro progetto. È tempo di costruirlo.

Progetto edilizio

Per creare il progetto, esegui:

$ stack build

Assicurati di eseguire questo comando all'interno della directory del tuo progetto. Una volta completata la compilazione, esegui l'eseguibile usando il comando:

$ stack exec ostechnix-exe

L'output di esempio sarebbe:

someFunc

Tieni presente che l'eseguibile "otechnix-exe" sarà nascosto in ./.stack-work directory nella directory principale del tuo progetto.

Giocare con Haskell

Apri il compilatore ghci:

$ stack exec ghci

Oppure,

$ stack exec -- ghci

Verrai reindirizzato al prompt di ghci.

GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
Prelude>

Come tutti gli altri, iniziamo con "ciao mondo!".

Prelude> "hello world!"
"hello world!"

Proviamo alcune operazioni aritmetiche.

Prelude> 14+90
104
Prelude> 14-90
-76
Prelude> 34/2
17.0

Alcune operazioni complesse:

Prelude> (67*98) - 50 - (24-2)
6494

Scopriamo quale numero è maggiore o minore:

Prelude> max 34 17
34
Prelude> min 45 98
45

Trova il successore:

Prelude> succ 89
90

Trova che gli input forniti siano uguali o meno:

Prelude> 10 == 10
True
Prelude> 10 == 20
False
Prelude> "ostechnix" == "ostechnix"
True
Prelude> "ostechnix" == "windows"
False

È anche facile usare valori booleani come di seguito:

Prelude> True && False
False
Prelude> True && True
True
Prelude> False || True
True
Prelude> False && False
False

Per impostazione predefinita, il nome del prompt è Preludio> . Puoi cambiarlo in qualcos'altro, ad esempio ghci>, digitando:

:set prompt "ghci> "

Per assistenza, digita:

:?

Per uscire, digita:

:quit

Oppure,

:q

Tieni presente che non è necessario creare la directory di un progetto. Possiamo iniziare a lavorare con Stack semplicemente eseguendo 'stack ghci' dalla shell. Scaricherà la versione GHC corretta e ti atterrerà nel preludio> richiesta.

Compilazione ed esecuzione del codice Haskell

È facile eseguire un codice Haskell. Controlla il seguente esempio.

Crea un file chiamato "otechnix.hs" con i seguenti contenuti.

#!/usr/bin/env stack
-- stack --install-ghc runghc

main :: IO ()
main = putStrLn "Welcome To OSTechNix"

Ora puoi eseguire questo programma usando il comando:

$ stack ostechnix.hs 
Welcome To OSTechNix

Ecco un altro esempio.

Crea un programma haskell chiamato myhaskell.hs con il seguente codice:

module Main where

main :: IO ()
main = putStrLn "Welcome To OSTechNix!"

Quindi compilalo usando il comando:

stack exec -- ghc myhaskell.hs -o test.hs

L'output di esempio sarebbe:

[1 of 1] Compiling Main ( myhaskell.hs, myhaskell.o )
Linking ostechnix.hs ...

Infine, eseguilo come mostrato di seguito:

$ ./test.hs 
Welcome To OSTechNix!

Abbiamo appena coperto le basi. C'è molto altro da imparare! Se sei interessato a saperne di più sulla programmazione Haskell, fai riferimento alle seguenti risorse per apprendere Haskell dalle basi al livello avanzato.

  • Esercitazioni Haskell
  • Impara a conoscere
  • Haskell nel mondo reale
  • Prova Haskell sul tuo browser
  • Wiki ufficiale di Haskell

Linux
  1. Iniziare con Zsh

  2. Iniziare con ls

  3. Iniziare con Samba per l'interoperabilità

  4. Iniziare con PostgreSQL su Linux

  5. Introduzione a SSH in Linux

Guida introduttiva a GitHub

Iniziare con Nix Package Manager

Iniziare con systemctl

Iniziare con cPanel

Guida introduttiva al comando Tar

Procedura:Introduzione alla programmazione – Per iniziare