Arvutiteaduse instituut
  1. Kursused
  2. 2025/26 sügis
  3. Funktsionaalprogrammeerimine (LTAT.03.019)
EN
Logi sisse

Funktsionaalprogrammeerimine 2025/26 sügis

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

Aritmeetilised jadad ja Listikomprehensioon

Aritmeetilised jadad

[m..n] on list [{$m, m + 1, \ldots, n$}] või vastavalt [{$m, m - 1, \ldots, n$}]

Näiteks:

  [2..5]==[2,3,4,5] 
  [3..1]==[3, 2, 1]

Sisemiselt on see lahendatud Range liidese funktsiooniga rangeFromTo s.t. töötab ka muude tüüpide puhul.

Näiteks:

  ['a'..'g'] == ['a', 'b', 'c', 'd', 'e', 'f', 'g']

[m,n..p] on sisuliselt list [{$m, m + (n-m); m + 2(n-m),\ldots , q$}] kus {$q <= p$}

Näiteks:

  [3,5..15]==[3, 5, 7, 9, 11, 13, 15]

Sisemiselt on see lahendatud Range liidese funktsiooniga rangeFromThenTo s.t. töötab ka muude tüüpide puhul.

Pane tähele, et töötab ka kahanevate väärtustega.

Näiteks:

  ['z', 'x'..'q']==['z', 'x', 'v', 't', 'r']

Listikomprehensioon

Süntaks: [e | {$q_1$}, {$q_2$}, {$\ldots$}, {$q_n$} ]

{$e$} on avaldis ja {$q_i$} võib olla

  • generaator, kujul {$x \leftarrow l$}, kus {$x$} on muutuja ja {$l$} list,
  • let, kujul {$\textsf{let }x = e'$}, kus {$x$} on muutuja ja {$e$} avaldis, või
  • valvur, kujul {$e'$}, kus {$e'$} on Bool tüüpi avaldis.

Avaldis {$e$} võib kasutada "paremal" defineeritud muutujaid, {$q_i$}-d võivad kasutada "vasakul" defineeritud muutujaid.

Näiteks:

  [ x*x | x<-[1..10] ] == [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  [ x*x | x<-[1..10], mod x 3 == 0] == [9, 36, 81]
  [ m | x<-[1..10], let m = x*x, m < 50] == [1, 4, 9, 16, 25, 36, 49]
  [ (a,b) | a<-[1..2],b<-[1..3] ] == [(1,1),(1,2),(1,3),(2,1),(2,2),(2,3)]
  • 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