Arvutiteaduse instituut
Courses.cs.ut.ee Arvutiteaduse instituut Tartu Ülikool
  1. Kursused
  2. 2026/27 sügis
  3. Funktsionaalprogrammeerimine (LTAT.03.019)
EN
Logi sisse

Funktsionaalprogrammeerimine 2026/27 sügis

  • Üldinfo
    • Õppekorraldus
  • Kursus
    • KKK
    • Installimine
    • Kodutöö 1
    • Kodutöö 2
    • Kodutöö 3
    • Kodutöö 4
    • Kodutöö 5
    • Kodutöö 6
    • Kodutöö 7
    • Suur kodutöö 1
    • Kodutöö 8
    • Kodutöö 9
    • Kodutöö 10
    • Kodutöö 11
    • Kodutöö 12
    • Suur kodutöö 2
    • Kodutöö 13*
  • FP Õpik
  • Moodle
  • Zulip (sisselogides näed linki)

Praktikum 0 - Tarkvara paigaldus

Toome välja mõned näited, kuidas Idris2 installida. Võite kasutada teisi meetodeid -- peamine, et teil oleks töötav Idris2 REPL (i.k. read-eval-print loop) ja mingi koodiredaktor. Alles viimastes praktikumides on ülesanded, mida on soovitatav lahendada pluginat kasutades. Kui tarkvara paigaldamine õnnestus, saate läbida allpool toodud harjutuse.

Mac OS X (Homebrew)

 brew install rlwrap
 brew install idris2

Windows 10/11 (WSL)

  • Paigaldada WSL
    • Open PowerShell in administrator mode by right-clicking and selecting "Run as administrator", enter the "wsl --install" command, then restart your machine.
  • Installida nixos süsteem kasutades WSL käsurida (või PowerShellis käsk wsl):
 sh <(curl -L https://nixos.org/nix/install) --daemon
 exit
  • Installida Idris2 ja rlwrap kasutades WSL käsurida (või PowerShellis käsk wsl):
 nix-env -i idris2-wrapped
 nix-env -i rlwrap
  • Installida VS Code Windowsi (vt. õpetust all)

Windows (mitte WSL)

  • VirtualBox+Ubuntu-22.04 aga siis peate ka VS Code linuxisse installima.

Linux (nix)

Käsureal täita järgnevad käsud. Esimene käsk installib nixos-i siis tuleb terminal sulgeda ja uuesti avada. Kolmas käsk installib idris2-e.

 sh <(curl -L https://nixos.org/nix/install) --daemon
 exit
 nix-env -i idris2-wrapped
 nix-env -i rlwrap

Ubuntu (apt) kui nix ei tööta

 sudo apt update
 sudo apt install chezscheme git build-essential libgmp-dev rlwrap
 wget https://github.com/idris-lang/Idris2/archive/refs/tags/v0.8.0.tar.gz
 tar -xvzf v0.8.0.tar.gz
 cd Idris2-0.8.0
 make bootstrap SCHEME=scheme
 make install
 cd ..
 echo 'export PATH="$HOME/.idris2/bin:$PATH"' >> ~/.bashrc
 echo 'export LD_LIBRARY_PATH="$HOME/.idris2/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc

Visual Studio Code (WSL)

  1. Lae alla ja paigalda VS Code
  2. Käivita VS Code
  3. Paigalda VS Code laiendus (extension) "WSL"
  4. Sulge VS Code
  5. Ava linux-i käsurida (näiteks Windowsi menüüst WSL või PowerShellist käsk "wsl")
  6. Käsureal mine oma wsl-i kodukataloogi ja ava seal VSCode
    cd 
    code . 
    
  7. Paigalda laiendus "Idris Language" (meraymond)
  8. Veendu, et laiendus oleks installitud WSL:Ubuntu alla --- VS Code peaks ütlema "Extension is enabled on 'WSL:Ubuntu'"
  9. Laienduse vaates vajuta hammasratta (Manage) peal ja vajuta 'Settings'
    • Sätetes vali: Idris2 Mode ja Idris Path pane "idris2"
    • Sulge sätted

Lõpuks on vaja konfigureerida klahvikombinatsioonid

  • Ava: File -> Preferences -> Keyboard Shortcuts ning kirjuta otsingusse "Idris"
  • Seadista klahvikobinatsioonid vastavalt enda soovile, näiteks
    • Idris: Case Split | Ctrl + Alt + C
    • Idris: Proof Search | Ctrl + Alt + P
    • Idris: Interpret Selection | Ctrl + Alt + I

Arendamisel avage VS Code-s vastav kataloog (kui avate ainult faili siis ei pruugi laiendus töötada)

  • Näiteks WSL käsurealt: code .

Märkus: Kuna VSCode laiendus "WSL" on arendatud Microsofti poolt, siis VS Codium-is seda avalikult ei leia. Selle saab küll tööle, kui VSCode-st alla tõmmata WSL laienduse VSIX fail ja see siis see VSIX fail VSCodiumis installida.

Visual Studio Code/Codium (mitte-WSL)

  1. Lae alla ja paigalda VS Code või VS Codium
  2. Paigalda laiendus "Idris Language" (meraymond)
  3. Laienduse vaates vajuta hammasratta (Manage) peal ja vajuta 'Settings'
    • Sätetes vali: Idris2 Mode ja Idris Path pane "idris2"
    • Sulge sätted

Konfigureeri klahvikombinatsioonid

  • Ava: File -> Preferences -> Keyboard Shortcuts ning kirjuta otsingusse "Idris"
  • Seadista klahvikobinatsioonid vastavalt enda soovile, näiteks
    • Idris: Case Split | Ctrl + Alt + C
    • Idris: Proof Search | Ctrl + Alt + P

Visual Studio Code + Docker + Dev Containers

(Hoiatus: See juhis on 2026. aasta jaoks uus ning hetkel katsetatud ainult MacOS peal. Teiste OSide peal testimine ja tagasiside (Danelile) on teretulnud.)

See paigaldus- ja kasutusviis on eelkõige neile, kes on harjunud Dockeri ja VS Code'i arenduskonteineritega töötama.

  1. Lae alla ja paigalda VS Code
  2. Paigalda laiendus Idris Language (meraymond)
  3. Laienduse vaates vajuta hammasratta (Manage) peal ja vajuta 'Settings'
    • Sätetes vali: Idris2 Mode ja Idris Path pane "idris2"
    • Sulge sätted
  4. Paigalda VS Code'i laiendus Dev Containers
  5. Sulge VS Code
  6. Lae alla ja paigalda Docker konteinerite haldamiseks
  7. Käivita Dockeri protsess
  8. Loo oma kursuse või projekti kataloogi `.devcontainer` alamkataloog
  9. Lae alla ja kopeeri `.devcontainer` alamkataloogi failid Devcontainer ja devcontainer.json
  10. Ava oma kursuse või projekti kataloog (alamkataloogi `.devcontainer` sisaldav kataloog) VS Code'is ning vali "Reopen in Container" nii nagu viidatud järgmisel pildil (kas valides esmalt 1a ja seejärel 1b, või valides hüpikmenüüst valiku 2)
  1. Seejärel VS Code alustab Dockeri konteineri ehitamist, mis võib esimesel korral võtta rohkem kui 10min. Järgmistel kordadel toimub projekti konteineris avamine kiiresti, kuna kasutatakse juba varasemalt ehitatud konteinerit.
  2. Kui konteineri ehitamine õnnestub, siis peaks VS Code näitama, et projekt on avatud konteineris "Dev Container: Idris2 devcontainer", nagu illustreeritud järgmisel pildil (roheliselt all vasakul ja ka projekti/kataloogi nimes).

VIM

  • Idrise looja Edwin Brady kasutab arendamiseks oma vim-i režiimi

Töökeskkonna tutvustus

Selle kursuse ülesandeid on mugav lahendada selliselt, et samal ajal on lahti koodiredaktor (näiteks VS Codium) ja käsurida/terminal Idris2 REPL-ga. Suurema monitoriga/ekraanilahutusega saavad need aknad olla kõrvuti. Sülearvutil võib olla mugavam kui mõlemad on täisekraanis s.t. vahetada nende vahel Alt-Tab/Command-Tab ga.

Tehke läbi järgnev lühike harjutus:

  1. Avage käsurida, kus saate idrist käivitada.
  2. Minge käsureal kataloogi, kus te tahate hoida kursuste materjale.
  3. Looge uus kataloog: mkdir idris_test
  4. Minge sinna kataloogi: cd idris_test
  5. Looge fail test0: touch test0.idr
  6. Avage VSCode: code .
  7. Käivitage REPL: rlwrap idris2 test0.idr
    • Kui teil ei õnnestunud rlwrap-i installimine, siis kasutage lihtsalt idris2 test0.idr
  8. REPL-is arvutage midagi: 5+5+5
  9. Kopeerige järgnev kood VSCode-s avatud faili (ärge salvestamist unustage)
 liida5 : Int -> Int
 liida5 x = x+5
  1. Laadige REPL-is fail uuest: :r
  2. REPL-is arvutage: liida5 (5+5)
  3. Hõljuge hiirega liida5 kohal
    • Peaks tekkima kastike Main.liida5: Int -> Int
  4. Lisage faili lõppu kommentaar -- liida5 1
  5. Selekteerige redaktoris avaldis liida5 1, vajutage klahvikombinatsioon Ctrl-Alt-i (kui olete selle seadistanud)
    • Peaks tekkima juurde => 6
  6. Sule REPL: :q
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused