Difference between revisions of "FP Laboratory 1/cs"

From Marek Běhálek Wiki
Jump to navigation Jump to search
(Created page with "*Pokud napíšete výraz, například <code>1+2*3</code>, měl by být vyhonocen. Interpret je možné ukončit napsáním <code>:q</code>. *Otevřete Visual Studio Code, vyt...")
 
(8 intermediate revisions by 2 users not shown)
Line 17: Line 17:
 
plus x y  = x + y + 'a'
 
plus x y  = x + y + 'a'
 
</syntaxhighlight >
 
</syntaxhighlight >
It should report a problem in function <code>plus</code> (you can not use <code>+</code> with letter, it can be repaired by removing <code>+ 'a'</code>). Report from VS Code is refreshed whenever the source file is saved on disk.
+
Prostředí by mělo nahlásit problém ve funkci <code>plus</code> (není přípustné používat operátor <code>+</code> s písmeny, je možné chybu odstranit odebráním <code>+ 'a'</code>). Hlášení z nástroje VS Code je obnoveno pokaždé, kdy je soubor uložen na disk.
  
== First program in Haskell ==
+
== První program v jazyce Haskell ==  
In your favorite development environment (VS Code by default):
+
Ve vašem oblíbeném prostředí (standardně VS Code):
* Crate a file <code>simple.hs</code>.
+
* Vytvořte soubor <code>simple.hs</code>.
* Create a function <code>pythagoras a b</code> that computes <code>c</code> based on  <math>c^2 = a^2 + b^2 \,,</math>. Necessary functions can be found: [https://hoogle.haskell.org/ Hoogle]
+
* Vytvořte funkci <code>pythagoras a b</code> která počítá <code>c</code> na základě vztahu <math>c^2 = a^2 + b^2 \,,</math>. Potřebné funkce mohou být nalezeny v: [https://hoogle.haskell.org/ Hoogle]
* Open <code>ghci</code> and run the implemented function with <code>3 4</code>. File can be loaded using command <code>:l</code> (<code>:load</code>) and reloaded with <code>:r</code> (<code>:reload</code>).
+
* Otevřete <code>ghci</code> a spusťte vytvořenou funkci se vstupem <code>3 4</code>. Soubor může být nahrán příkazem <code>:l</code> (<code>:load</code>) a obnoven příkazem <code>:r</code> (<code>:reload</code>).
 
+
<div class="mw-collapsible mw-collapsed" data-collapsetext="Hide solution" data-expandtext="Show solution">
== Real first program in Haskell ==
+
<syntaxhighlight lang="Haskell">
 +
pythagoras a b = sqrt (a*a + b*b)
 +
</syntaxhighlight>
 +
[[File:Tryit.png|center|60px|Try it!|link=https://rextester.com/DEAQ69276]]
 +
</div>
 +
<div style="clear:both"></div>
 +
== Opravdová první aplikace v jazyce Haskell ==
  
If you are complaining, that all programming courses should start with printing <code>"Hello world!"</code> on the screen and that is why previous task sucks. Do the following exercise.
+
Pokud se vám nezdá, že předchozí úkol nevypíše <code>"Hello world!"</code> na obrazovku a zdá se vám to špatně, protože každý kurz programování by měl začít tuto úlohou, vytvořte následující úlohu.
*Crate a file <code>firstProgram.hs</code> with following content:
+
*Vytvořte soubor <code>firstProgram.hs</code> s následujícím osahem:
 
<syntaxhighlight lang="Haskell">
 
<syntaxhighlight lang="Haskell">
 
main = do putStr "Hello world!"
 
main = do putStr "Hello world!"
 
</syntaxhighlight >
 
</syntaxhighlight >
*Compile it with 'GHC compiler' (command <code>ghc</code>).
+
*Zkompilujte vytvořený soubor 'GHC kompilátorem' (příkaz <code>ghc</code>).
*It should produce an executable file <code>firstProgram(.exe)</code>, run this file.
+
*Měl by být vytvořen spustitelný soubor <code>firstProgram(.exe)</code>, spusťte tento soubor.

Latest revision as of 15:31, 20 September 2021

Pracovní prostředí

Připravte si pracovní prostředí s využitím návodu ze stránek Funkcionální programování.

Jak ověřit, že to funguje?

  • Spusťte ghci z příkazové řádky. Bude spuštěn interpret GHC, výstup by měl vypadat nějak takto:
GHCi, version 8.6.5: http://www.haskell.org/ghc/  :? for help
Prelude>
  • Pokud napíšete výraz, například 1+2*3, měl by být vyhonocen. Interpret je možné ukončit napsáním :q.
  • Otevřete Visual Studio Code, vytvořte soubor simple.hs a vložte do něj následující kód:
doubleMe x = x * x

plus x y  = x + y + 'a'

Prostředí by mělo nahlásit problém ve funkci plus (není přípustné používat operátor + s písmeny, je možné chybu odstranit odebráním + 'a'). Hlášení z nástroje VS Code je obnoveno pokaždé, kdy je soubor uložen na disk.

První program v jazyce Haskell

Ve vašem oblíbeném prostředí (standardně VS Code):

  • Vytvořte soubor simple.hs.
  • Vytvořte funkci pythagoras a b která počítá c na základě vztahu . Potřebné funkce mohou být nalezeny v: Hoogle
  • Otevřete ghci a spusťte vytvořenou funkci se vstupem 3 4. Soubor může být nahrán příkazem :l (:load) a obnoven příkazem :r (:reload).
pythagoras a b = sqrt (a*a + b*b)
Try it!

Opravdová první aplikace v jazyce Haskell

Pokud se vám nezdá, že předchozí úkol nevypíše "Hello world!" na obrazovku a zdá se vám to špatně, protože každý kurz programování by měl začít tuto úlohou, vytvořte následující úlohu.

  • Vytvořte soubor firstProgram.hs s následujícím osahem:
main = do putStr "Hello world!"
  • Zkompilujte vytvořený soubor 'GHC kompilátorem' (příkaz ghc).
  • Měl by být vytvořen spustitelný soubor firstProgram(.exe), spusťte tento soubor.