Haskell ist eine fortschrittliche, rein funktionale und universelle Programmiersprache. Dieses Handbuch befasst sich mit der Installation von Haskell und den ersten Schritten mit der Programmiersprache Haskell in Unix-ähnlichen Betriebssystemen. Haskell kann auf drei Arten installiert werden; manuelle Installation, Verwendung von Stack und Verwendung der Haskell-Plattform. Die Installation von Haskell mit Stack ist bisher die offiziell empfohlene und einfachste Methode. In diesem Handbuch erfahren Sie, wie Sie Haskell installieren und wie Sie mit der Haskell-Programmiersprache in Unix-ähnlichen Systemen beginnen.
Installieren Sie den Haskell-Tool-Stack
Haskell Tool Stack ist ein plattformübergreifendes Programm zum Erstellen von Haskell-Projekten. Mit dem Haskell Stack erhalten wir eine umfassende Entwicklungsumgebung für Haskell. Mit dem Haskell-Tool-Stack können wir die folgenden Komponenten einfach installieren:
- Stapeln :Ein Projekt-Builder für Haskell-Projekte mit mehreren Paketen,
- GHC :Ein Compiler und Interpreter für Haskell-Programme,
- Schellfisch :Ein Dokumentationsgenerator für Haskell-Pakete,
- Und Tausende von Paketen können bei Bedarf installiert werden.
Lassen Sie uns zuerst den Haskell-Stack mit dem Befehl installieren:
$ wget -qO- https://get.haskellstack.org/ | sh
Oder,
$ curl -sSL https://get.haskellstack.org/ | sh
Die obigen Befehle laden die neueste Stack-Version herunter und installieren sie sofort.
Diese Befehle sind für fast alle Linux-Distributionen und FreeBSD gleich. Die Arch-Community pflegt jedoch eine offizielle Version in der [Community] Repository. Wenn Sie also Arch Linux und/oder andere Arch-basierte Systeme ausführen, führen Sie einfach den folgenden Befehl aus, um die neueste stabile Stack-Version zu installieren.
$ sudo pacman -S stack
Führen Sie nach der Installation den folgenden Befehl aus, um Ihre PATH-Umgebungsvariable so einzustellen, dass sie $HOME/.local/bin enthält :
$ echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
Aktualisiert die in der Datei ~/.bashrc vorgenommenen Änderungen mit dem Befehl:
$ source ~/.bashrc
Sehen wir uns die installierte Version von Stack an:
$ stack --version Version 1.6.1, Git revision f25811329bbc40b0c21053a8160c56f923e1201b (5435 commits) x86_64 hpack-0.20.0
Um Stack jederzeit zu aktualisieren, führen Sie einfach Folgendes aus:
$ stack upgrade
Um den Paketindex zu aktualisieren, führen Sie Folgendes aus:
$ stack update
Wir haben Stack installiert. Lassen Sie uns fortfahren und ein neues Projekt erstellen.
Ein neues Projekt einrichten
Um unser neues Projekt zum Laufen zu bringen, benötigen wir einige Dateien wie etwa Haskell-Quellcode, eine package.yaml-, eine stack.yaml- und eine .cabal-Datei sowie einige andere Verzeichnisse. Wir können diese Dateien manuell erstellen. Haskell hat jedoch viele vordefinierte Vorlagen. Wir können also eine verwenden, anstatt sie manuell zu erstellen.
Um alle verfügbaren Vorlagen aufzulisten, führen Sie Folgendes aus:
$ stack templates
Jetzt werde ich ein neues Projekt namens "ostechnix" erstellen und verwenden Sie "new-template" . Führen Sie dazu Folgendes aus:
$ stack new ostechnix new-template
Beispielausgabe wäre:
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.
GHC installieren
Gehen Sie in das Verzeichnis des neu erstellten Projekts und führen Sie den Download von „Stack Setup“ aus und installieren Sie den erforderlichen Compiler.
$ cd ostechnix/
$ stack setup
Dieser Befehl installiert den richtigen GHC-Compiler in Ihrem neuen Haskell-Projekt. GHC wird an einem isolierten Ort installiert. Das bedeutet, dass die Installation auf Systemebene dadurch nicht beeinträchtigt wird.
Bitte beachten Sie, dass GHC in Ihrem globalen Stack-Root-Verzeichnis installiert wird. Sie können es also nicht einfach von Ihrer Shell aus mit dem Befehl ghc aufrufen . Verwenden Sie stattdessen:stack ghc , stapeln ghci , Runghc stapeln , oder stack exec . Führen Sie für weitere Informationen zu Pfaden Folgendes aus:
$ stack path
und..
$ stack exec env
Wir haben jetzt ein neues Projekt erstellt und den richtigen Compiler für unser Projekt installiert. Es ist Zeit, es zu bauen.
Bauvorhaben
Führen Sie zum Erstellen des Projekts Folgendes aus:
$ stack build
Stellen Sie sicher, dass Sie diesen Befehl im Verzeichnis Ihres Projekts ausführen. Führen Sie nach Abschluss des Builds die ausführbare Datei mit dem folgenden Befehl aus:
$ stack exec ostechnix-exe
Beispielausgabe wäre:
someFunc
Bitte beachten Sie, dass die ausführbare "ostechnix-exe" im ./.stack-work versteckt wird Verzeichnis im Hauptverzeichnis Ihres Projekts.
Mit Haskell spielen
Öffnen Sie den ghci-Compiler:
$ stack exec ghci
Oder,
$ stack exec -- ghci
Sie landen in der ghci-Eingabeaufforderung.
GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help Prelude>
Beginnen wir wie alle anderen mit "Hallo Welt!".
Prelude> "hello world!" "hello world!"
Lassen Sie uns einige arithmetische Operationen ausprobieren.
Prelude> 14+90 104 Prelude> 14-90 -76 Prelude> 34/2 17.0
Einige komplexe Operationen:
Prelude> (67*98) - 50 - (24-2) 6494
Lassen Sie uns herausfinden, welche Zahl größer oder kleiner ist:
Prelude> max 34 17 34 Prelude> min 45 98 45
Finden Sie den Nachfolger:
Prelude> succ 89 90
Finden Sie heraus, ob die angegebenen Eingaben gleich sind oder nicht:
Prelude> 10 == 10 True Prelude> 10 == 20 False Prelude> "ostechnix" == "ostechnix" True Prelude> "ostechnix" == "windows" False
Es ist auch einfach, boolesche Werte wie unten zu verwenden:
Prelude> True && False False Prelude> True && True True Prelude> False || True True Prelude> False && False False
Standardmäßig lautet der Eingabeaufforderungsname Prelude> . Sie können dies in etwas anderes ändern, zum Beispiel ghci>, indem Sie Folgendes eingeben:
:set prompt "ghci> "
Geben Sie für Hilfe Folgendes ein:
:?
Geben Sie zum Beenden Folgendes ein:
:quit
Oder,
:q
Bitte beachten Sie, dass wir kein Projektverzeichnis erstellen müssen. Wir können mit der Arbeit mit Stack beginnen, indem wir einfach „stack ghci“ von der Shell ausführen. Es lädt die richtige GHC-Version herunter und bringt Sie in das Vorspiel Eingabeaufforderung.
Compilieren und Ausführen von Haskell-Code
Es ist einfach, einen Haskell-Code auszuführen. Überprüfen Sie das folgende Beispiel.
Erstellen Sie eine Datei namens "ostechnix.hs" mit folgendem Inhalt.
#!/usr/bin/env stack -- stack --install-ghc runghc main :: IO () main = putStrLn "Welcome To OSTechNix"
Jetzt können Sie dieses Programm mit dem Befehl ausführen:
$ stack ostechnix.hs Welcome To OSTechNix
Hier ist ein weiteres Beispiel.
Erstellen Sie ein Haskell-Programm namens myhaskell.hs mit folgendem Code:
module Main where main :: IO () main = putStrLn "Welcome To OSTechNix!"
Kompilieren Sie es dann mit dem Befehl:
stack exec -- ghc myhaskell.hs -o test.hs
Beispielausgabe wäre:
[1 of 1] Compiling Main ( myhaskell.hs, myhaskell.o ) Linking ostechnix.hs ...
Führen Sie es schließlich wie unten gezeigt aus:
$ ./test.hs Welcome To OSTechNix!
Wir haben nur die Grundlagen behandelt. Es gibt noch viel mehr zu lernen! Wenn Sie mehr über die Haskell-Programmierung erfahren möchten, lesen Sie die folgenden Ressourcen, um Haskell von den Grundlagen bis zum fortgeschrittenen Niveau zu lernen.
- Haskell-Tutorials
- Learnyouhaskell
- Real World Haskell
- Probieren Sie Haskell in Ihrem Browser aus
- Offizielles Haskell-Wiki