GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s programovacím jazykem Haskell

Haskell je pokročilý, čistě funkční a obecný programovací jazyk. Tato příručka se zabývá tím, jak nainstalovat Haskell a jak začít s programovacím jazykem Haskell v operačních systémech podobných Unixu. Haskell lze nainstalovat třemi způsoby; ruční instalaci, pomocí zásobníku a pomocí platformy Haskell. Instalace Haskellu pomocí zásobníku je zatím oficiálně doporučená a nejjednodušší metoda. V této příručce uvidíme, jak nainstalovat Haskell a jak začít s programovacím jazykem Haskell v systémech podobných Unixu.

Nainstalujte sadu nástrojů Haskell

Haskell Tool Stack je multiplatformní program pro vytváření projektů Haskell. S Haskell Stack získáváme komplexní vývojové prostředí pro Haskell. Pomocí sady nástrojů Haskell můžeme snadno nainstalovat následující komponenty:

  • Zásobník :Tvůrce projektů pro projekty Haskell s více balíčky,
  • GHC :Kompilátor a interpret pro programy Haskell,
  • Meddock :Generátor dokumentace pro balíčky Haskell,
  • A tisíce balíčků lze nainstalovat na vyžádání.

Nejprve nainstalujme Haskell stack pomocí příkazu:

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

Nebo,

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

Výše uvedené příkazy stáhnou nejnovější verzi Stack a ihned ji nainstalují.

Tyto příkazy jsou stejné pro téměř všechny distribuce Linuxu a FreeBSD. Komunita Arch však udržuje oficiální verzi v [komunitě] úložiště. Pokud tedy používáte Arch Linux a/nebo jakýkoli systém založený na Arch, stačí spustit následující příkaz a nainstalovat nejnovější stabilní verzi Stack.

$ sudo pacman -S stack

Po instalaci spusťte následující příkaz a nastavte proměnnou prostředí PATH tak, aby zahrnovala $HOME/.local/bin :

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

Aktualizuje změny provedené v souboru ~/.bashrc pomocí příkazu:

$ source ~/.bashrc

Podívejme se na nainstalovanou verzi Stack:

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

Chcete-li Stack kdykoli aktualizovat, stačí spustit:

$ stack upgrade

Chcete-li aktualizovat index balíčku, spusťte:

$ stack update

Nainstalovali jsme Stack. Pojďme do toho a vytvořte nový projekt.

Nastavení nového projektu

Aby se náš nový projekt rozběhl, potřebujeme nějaké soubory, jako je zdrojový kód haskell, package.yaml, stack.yaml a .cabal soubor a několik dalších adresářů. Tyto soubory můžeme vytvořit ručně. Haskell má však mnoho předdefinovaných šablon. Můžeme je tedy použít místo ručního vytváření.

Chcete-li zobrazit všechny dostupné šablony, spusťte:

$ stack templates

Nyní vytvořím nový projekt s názvem "ostechnix" a použijte "new-template" . Chcete-li to provést, spusťte:

$ stack new ostechnix new-template

Ukázkový výstup by byl:

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.

Instalace GHC

Přejděte do adresáře nově vytvořeného projektu a spusťte stažení 'stack setup' a nainstalujte požadovaný kompilátor.

$ cd ostechnix/
$ stack setup

Tento příkaz nainstaluje správný kompilátor GHC do vašeho nového projektu Haskell. GHC bude instalováno na izolovaném místě. To znamená, že to nebude kolidovat s žádnou instalací na úrovni systému.

Vezměte prosím na vědomí, že GHC se nainstaluje do vašeho globálního kořenového adresáře zásobníku. Nemůžete to tedy zavolat ze svého shellu pomocí příkazu ghc . Místo toho zvažte použití:stack ghc , zásobník ghci , zásobník runghc nebo stack exec . Další informace o cestách získáte spuštěním:

$ stack path

a...

$ stack exec env

Nyní jsme vytvořili nový projekt a nainstalovali správný kompilátor pro náš projekt. Je čas ji postavit.

Projekt stavby

Chcete-li sestavit projekt, spusťte:

$ stack build

Ujistěte se, že jste tento příkaz spustili v adresáři vašeho projektu. Po dokončení sestavení spusťte spustitelný soubor pomocí příkazu:

$ stack exec ostechnix-exe

Ukázkový výstup by byl:

someFunc

Vezměte prosím na vědomí, že spustitelný soubor "ostechnix-exe" bude skrytý v ./.stack-work adresář v hlavním adresáři vašeho projektu.

Hraní s Haskellem

Otevřete kompilátor ghci:

$ stack exec ghci

Nebo,

$ stack exec -- ghci

Zobrazí se výzva ghci.

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

Jako všichni ostatní začněme slovy „ahoj světe!“.

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

Zkusme nějaké aritmetické operace.

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

Některé složité operace:

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

Pojďme zjistit, které číslo je větší nebo menší:

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

Najděte nástupce:

Prelude> succ 89
90

Najděte, zda jsou dané vstupy stejné nebo ne:

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

Je také snadné použít booleovské hodnoty, jak je uvedeno níže:

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

Ve výchozím nastavení je název výzvy Prelude> . Toto můžete změnit na něco jiného, ​​například ghci>, zadáním:

:set prompt "ghci> "

Nápovědu získáte zadáním:

:?

Pro ukončení zadejte:

:quit

Nebo,

:q

Upozorňujeme, že nemusíme vytvářet adresář projektu. Můžeme začít pracovat se Stack pouhým spuštěním 'stack ghci' z shellu. Stáhne správnou verzi GHC a dostane vás do předehry výzva.

Kompilace a spuštění kódu Haskell

Spuštění kódu Haskell je snadné. Zkontrolujte následující příklad.

Vytvořte soubor s názvem "ostechnix.hs" s následujícím obsahem.

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

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

Nyní můžete tento program spustit pomocí příkazu:

$ stack ostechnix.hs 
Welcome To OSTechNix

Zde je další příklad.

Vytvořte haskell program s názvem myhaskell.hs s následujícím kódem:

module Main where

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

Poté jej zkompilujte pomocí příkazu:

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

Ukázkový výstup by byl:

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

Nakonec jej spusťte, jak je uvedeno níže:

$ ./test.hs 
Welcome To OSTechNix!

Probrali jsme jen základy. Je toho mnohem víc, co se naučit! Pokud se chcete dozvědět více o programování Haskell, podívejte se do následujících zdrojů, kde se dozvíte Haskell od základů až po pokročilé úrovně.

  • Výukové programy Haskell
  • Learnyouhaskell
  • Real World Haskell
  • Vyzkoušejte Haskell ve svém prohlížeči
  • Oficiální wiki Haskell

Linux
  1. Začínáme se Sambou pro interoperabilitu

  2. Začínáme s PostgreSQL na Linuxu

  3. Začínáme s SSH v Linuxu

  1. Začínáme se Zsh

  2. Začínáme s ls

  3. Jak na to:Začínáme s Ansible

  1. Začínáme s GnuCash

  2. Začínáme s Etcher.io

  3. Začínáme s regulárními výrazy