Skip to content

scala-fmi/scala-fmi-2021

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π·Π° Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ със Scala

Π›Π΅ΠΊΡ†ΠΈΠΈ

  • 01 – Π—Π° курса
  • 02 – Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ във Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ със Scala [ΠΊΠΎΠ΄]
    • Scala инструмСнти
      • scala, scalac, REPL
      • sbt, конфигурация, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅, стартиранС ΠΈ тСстванС
      • добавянС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
    • Π’ΠΈΠΏΠΎΠ²Π΅ ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ
    • Π”Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΈ – val, var, def, type, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Type inference
    • Π€Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ
    • БтойноститС ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ (с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ)
    • if ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° структура
    • "Всичко Π΅ ΠΈΠ·Ρ€Π°Π· ΠΈΠ»ΠΈ дСфиниция". ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈΡ‚Π΅ структури ΠΈ Π±Π»ΠΎΠΊΠ²Π΅Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ€Π°Π·ΠΈ
    • Π’ΠΈΠΏΠΎΠ²Π° йСархия. Any, AnyVal, AnyRef, Unit, Null, Nothing
    • Java Memory Model
    • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ структури със странични Π΅Ρ„Π΅ΠΊΡ‚ΠΈ – while, try/catch (ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ), for
    • ΠžΡ‰Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ структури Π±Π΅Π· странични Π΅Ρ„Π΅ΠΊΡ‚ΠΈ – pattern matching, (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½) for
    • Π‘ΡŠΡΡ‚Π°Π²Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅
      • Ρ…Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½ΠΈ – Π½Π°Ρ€Π΅Π΄Π΅Π½ΠΈ n–торки (tuples)
      • Ρ…ΠΎΠΌΠΎΠ³Π΅Π½Π½ΠΈ – Range, List[A], Set[A], Map[K, V]
    • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Ρ…ΠΎΠΌΠΎΠ³Π΅Π½Π½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ – isEmpty, head, tail, take, drop
    • ΠŸΠΎΠΌΠΎΡ‰Π΅Π½ синтаксис ΠΏΡ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
      • Ρ‚ΠΈΠΏΠΎΠ²ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ (generics)
      • overloading
      • default стйности Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ
      • ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ
      • ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² Π±Ρ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ
    • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅
      • матСматичСски Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
      • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ срСщу ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅
      • характСристики Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ
      • Substitution ΠΌΠΎΠ΄Π΅Π» Π½Π° изчислСниС. ΠŸΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎ стойност ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅
      • Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½Π° прозрачност
  • 03 – ООП във Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ Π΅Π·ΠΈΠΊ [ΠΊΠΎΠ΄]
    • ΠžΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ ΠΊΠ°Ρ‚ΠΎ систСма ΠΎΡ‚ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ
      • Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, Снкапсулация ΠΈ late-binding
      • ООП ΠΊΠ°Ρ‚ΠΎ концСпция, ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»Π½Π° Π½Π° ЀП. ООП Π² Scala
    • Π”Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° клас. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° клас (конструктори), Ρ‡Π»Π΅Π½ΠΎΠ²Π΅, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ
    • Π”Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚
    • apply ΠΌΠ΅Ρ‚ΠΎΠ΄. ΠžΠ±Π΅ΠΊΡ‚ΠΈ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • ΠŸΡ€ΠΈΠ΄Ρ€ΡƒΠΆΠ°Π²Π°Ρ‰ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ
    • implicit конвСрсии
    • case класовС Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΌΠΈΠ½ΠΈΠΌΠΈ value ΠΎΠ±Π΅ΠΊΡ‚ΠΈ
    • Абстрактни Ρ‚ΠΈΠΏΠΎΠ²Π΅ – trait
      • Uniform Access Principle
      • мноТСствСно наслСдяванС
      • ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΡŠΠΌ
    • import ΠΈ export ΠΊΠ»Π°ΡƒΠ·ΠΈ
    • ΠžΠ±Π²ΠΈΠ²Π°Ρ‰ΠΈ AnyVal класовС. Type safety Ρ‡Ρ€Π΅Π· ΠΎΠ±Π²ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅
    • Π‘ΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅. Номинално ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½Π΅
    • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π² Scala
    • Π’ΠΈΠΏΠΎΠ²Π° Π°Π»Π³Π΅Π±Ρ€Π°. ОбСдинСниС ΠΈ сСчСниС Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅
    • The Expression Problem Π² Scala. ООП срСщу ЀП конструкции
    • Extension ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ – Ρ€Π΅Ρ‚Ρ€ΠΎΠ°ΠΊΡ‚ΠΈΠ²Π½ΠΎ добавянС Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ към Ρ‚ΠΈΠΏ
    • ВСстовС
  • 04 – Основни ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ ΠΏΡ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ [ΠΊΠΎΠ΄]
    • РСкурсия
      • итСрация Ρ‡Ρ€Π΅Π· рСкурсия
      • рСкурсия ΠΈ substitution ΠΌΠΎΠ΄Π΅Π»Π°
      • опашкова рСкурсия. РСкурсия Ρ‡Ρ€Π΅Π· Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ
      • рСкурсия ΠΏΠΎ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ
    • НСизмСнимост ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌΠΈ структури ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ
      • Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ във Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ
      • persistence (пСрсистСнтност) ΠΈ structural sharing. Роля Π½Π° Garbage Collector-Π°
      • пСрсистСнтност ΠΈ structural sharing ΠΏΡ€ΠΈ списък (List)
      • Vector – оптимизация Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈ добавянС Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ ΠΈ Π² края. Π•Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ константна слоТност
      • чисто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ структури ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. БСзопасно сподСлянС Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° структури ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΈ нишки
      • Set ΠΈ Map ΠΊΠ°Ρ‚ΠΎ чисто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ структури
    • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΎΠΊΠ»Π°ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ
      • Π»Π°ΠΌΠ±Π΄Π° синтаксис ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ Ρ‚ΠΈΠΏ
      • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° def Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ/ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ към ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – eta expansion
      • частично ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ
      • Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎ-висок Ρ€Π΅Π΄. filter, map, reduce, fold
      • композиция Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠΎ-висок Ρ€Π΅Π΄
      • мноТСство ΡΠΏΠΈΡΡŠΡ†ΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ.
        • Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ
        • type inference
        • създаванС Π½Π° собствСни конструкции
        • currying
      • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ към curried ΠΈΠ»ΠΈ tupled Ρ„ΠΎΡ€ΠΌΠΈ
    • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • Π˜Π·Ρ€Π°Π·ΡΠ²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Ρ‚ΠΈΠΏΠΎΠ²Π΅
  • 05 – Fold ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ
    • Абстракция Ρ‡Ρ€Π΅Π· fold, foldLeft ΠΈ foldRight. Π˜Π·Ρ€Π°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‡Ρ€Π΅Π· тях
    • ЙСархия ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² Scala.
      • Uniform Return Type principle
      • ΠšΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° Seq, Set, Map)
    • ЧСстични Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Частични Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Ρ€Π΅Π· case Π±Π»ΠΎΠΊΠΎΠ²Π΅
    • ΠžΡ‰Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ – partition, span, splitAt; flatten, flatMap, zip, groupBy ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ
    • Π’Π°ΠΉΠ½Π°Ρ‚Π° Π·Π° for конструкциитС – синтактична Π·Π°Ρ…Π°Ρ€ Π²ΡŠΡ€Ρ…Ρƒ map, flatMap ΠΈ withFilter (filter)
    • Lazy ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ
      • нСстриктни view-Ρ‚Π° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ
      • lazy ΡΠΏΠΈΡΡŠΡ†ΠΈ с мСмоизация
    • Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ Π½Π° LazyList
  • 06 – Pattern matching ΠΈ Π°Π»Π³Π΅Π±Ρ€ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ (ADTs)
    • Pattern matching. ДСструктуриранС Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ
    • Pattern matching Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ мСста
      • case Π±Π»ΠΎΠΊΠΎΠ²Π΅ – ΠΏΡ€ΠΈ match ΠΈΠ»ΠΈ Π½Π° мястата, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΠΎΡ‡Π°ΠΊΠ²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ частични Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ с map ΠΈ collect
      • pattern bindings – ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ pattern ΠΏΡ€ΠΈ for (отляво Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈ) ΠΈ ΠΏΡ€ΠΈ val Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΈ
    • АлгСбрични Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ
      • product Ρ‚ΠΈΠΏΠΎΠ²Π΅. case класовС, Π½Π°Ρ€Π΅Π΄Π΅Π½ΠΈ n-Ρ‚ΠΎΡ€ΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ
      • sum Ρ‚ΠΈΠΏΠΎΠ²Π΅. Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ Ρ‡Ρ€Π΅Π· sealed trait ΠΈ enum
    • Type bounds (ограничСния Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ).
    • Вариантност. ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ ΠΈ контравариантност Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅. Вариантност ΠΏΡ€ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΡ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ
    • Π˜Π·Ρ€Π°Π·ΡΠ²Π°Π½Π΅ Π½Π° опционалност. null ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ° Π·Π° ΠΌΠΈΠ»ΠΈΠ°Ρ€Π΄ Π΄ΠΎΠ»Π°Ρ€Π°. Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ Π½Π° Option Ρ‚ΠΈΠΏ
    • ПолСзни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ Option. ИзползванС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вмСсто pattern matching
    • ДСструктуриранС Ρ‡Ρ€Π΅Π· Скстрактори. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ Π² pattern matching Ρ‚ΡƒΠΊ
  • 07 – Π•Ρ„Π΅ΠΊΡ‚ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ
    • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ Π΄ΠΈΠ·Π°ΠΉΠ½ – ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Π½Π΅Π»Π΅Π³Π°Π»Π½ΠΈΡ‚Π΅ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ
    • ΠžΡ‚ частични към Ρ‚ΠΎΡ‚Π°Π»Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • Π•Ρ„Π΅ΠΊΡ‚ΠΈ
    • Π’ΠΈΠ΄ΠΎΠ²Π΅ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ – частичност, ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/Π³Ρ€Π΅ΡˆΠΊΠΈ, Π½Π΅Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΠ·ΡŠΠΌ, зависимости/конфигурация, Π»ΠΎΠ³Π²Π°Π½Π΅, измСняСмо ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄, асинхронност, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ. Π’ΠΈΠΏΠΎΠ²Π΅ Π·Π°Π΄ тях
    • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ‚Π°
    • ΠœΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠ½ΠΈ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Ρ‡Ρ€Π΅Π· Option, Try ΠΈ Either
      • замяна Π½Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ‚Π° с бСзопасни ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ
      • ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ структури ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π»ΠΎΠ³ΠΈΠΊΠ°
    • Π•Ρ„Π΅ΠΊΡ‚ Π·Π° Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄. IO. ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²Π° Π½Π° IO
    • Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° чисто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Π½ (Π±Π΅Π· странични Π΅Ρ„Π΅ΠΊΡ‚ΠΈ) ΠΎΡ‚ изпълнСниС Π½Π° ΠΏΠ»Π°Π½Π° (Π²ΠΎΠ΄Π΅Ρ‰ΠΎ Π΄ΠΎ странични Π΅Ρ„Π΅ΠΊΡ‚ΠΈ)
  • 08 – ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΡΡ‚ [ΠΊΠΎΠ΄]
    • Врансформиращи, ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΈ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ систСми
    • Π₯арактСристики Π½Π° физичСския свят
    • Π¦Π΅Π»: ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° са част ΠΎΡ‚ физичСския свят ΠΈ Π΄Π° взаимодСйстват с Π½Π΅Π³ΠΎ
    • ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΡΡ‚ ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ»ΠΈΠ·ΡŠΠΌ – ΠΏΡ€ΠΈΠΏΡ€ΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ‚Π΅
    • Дистрибутираност
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ
    • Какво ΠΏΡ€Π°Π²ΠΈ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄Π΅Π» подходящ? ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΈ характСристики
    • НуТда ΠΎΡ‚ комуникация ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ
    • Нишки, комуникация ΠΌΠ΅ΠΆΠ΄Ρƒ нишки (Ρ‡Ρ€Π΅Π· сподСлСно ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅), happens-before рСлация Π²ΡŠΡ€Ρ…Ρƒ JVM, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π½ΠΈΡˆΠΊΠΈΡ‚Π΅
    • РСактивност ΠΈ асинхронност Ρ‡Ρ€Π΅Π· callbacks. ΠŸΡ€Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° нишки Ρ‡Ρ€Π΅Π· thread pool-ΠΎΠ²Π΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° callbacks
    • Future – Π΅Ρ„Π΅ΠΊΡ‚ Π·Π° асинхронност. ΠœΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Future, слСдвайки ΠΏΠΎΠ»Π·ΠΈΡ‚Π΅ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ Π½Π° IO
    • ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° свойствата Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈΡ‚Π΅ ΠΈΠ·Ρ€Π°Π·ΠΈ Π²ΡŠΡ€Ρ…Ρƒ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ. map, flatMap, zip ΠΈ zipMap ΠΊΠ°Ρ‚ΠΎ срСдство Π·Π° описванС Π½Π° зависимости Π²ΡŠΡ€Ρ…Ρƒ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ вмСсто Π²ΡŠΡ€Ρ…Ρƒ сурови стойности
    • Eager ΠΈ lazy Future-ΠΈ
    • Π”ΠΈΠ·Π°ΠΉΠ½ ΠΈ рСализация Π½Π° eager Future. Π’Ρ€ΡŠΠ·ΠΊΠ° към външния – Ρ‡Ρ€Π΅Π· Promise. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅
    • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎΡΡ‚, рСактивност ΠΈ бСзопасност Π½Π° Future
    • Асинхронни HTTP client ΠΈ HTTP server Ρ‡Ρ€Π΅Π· Future
    • КонзолСн Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄ със Future – ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ thread pool Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – web server Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡ‚ ΠΊΠ½ΠΈΠ³ΠΈ със web ΠΊΠ»ΠΈΠ΅Π½Ρ‚, позволяващ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΎΡ‚ ΠΊΠ½ΠΈΠ³ΠΈ
    • ΠŸΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΡŠΡ€Ρ…Ρƒ Future
      • трансформация Π½Π° мноТСство Future-ΠΈ (sequence, firstCompletedOf)
      • ΠΈ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ (recover, recoverWith, fallbackTo ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ)
    • Lazy Future – Ρ‰Π΅ Π³ΠΎ ΠΊΡ€ΡŠΡΡ‚ΠΈΠΌ lazy IO
      • Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° интСрфСйса спорСд Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
      • описванС Π½Π° ΠΏΠ»Π°Π½ Ρ‡Ρ€Π΅Π· ADT Π·Π° IO
      • асинхронСн ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° IO
      • синхронСн ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° IO
    • ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²Π° Π½Π° lazy IO ΠΏΡ€Π΅Π· eager Future
  • 09 – Type classes [ΠΊΠΎΠ΄]
    • Абстрактност ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΎ срСдство Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ. Абстрактност Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ‚Π°
    • Какво Π΅ type class. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ€Π΅Π· ΠΌΠΎΠ½ΠΎΠΈΠ΄
    • ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² програмния ΠΊΠΎΠ΄. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΡΡ‚ Π½Π° type class-ΠΎΠ²Π΅Ρ‚Π΅ Π² Scala
    • Π₯арактСристики Π½Π° type class-ΠΎΠ²Π΅Ρ‚Π΅. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, композитност, аксиоми
    • Context bound
    • ЛогичСски ΠΈΠ·Π²ΠΎΠ΄ΠΈ ΠΏΡ€ΠΈ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° implicit стойности, логичСска Ρ‚ΠΈΠΏΠΎΠ²Π° систСма
    • Π—Π°Ρ‰ΠΎ спазванСто Π½Π° аксиомитС Π΅ Π²Π°ΠΆΠ½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠ°Ρ€Π°Π»Π΅Π»Π΅Π½ fold
    • РСализация Π½Π° type class-ΠΎΠ²Π΅ Π² Scala 3 Ρ‡Ρ€Π΅Π· given
    • Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ООП класовСтС ΠΈ type class-ΠΎΠ²Π΅Ρ‚Π΅
    • ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΡŠΠΌ ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΡŠΠΌ. Static ΠΈ late binding. РСтроактивност
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° type class-ΠΎΠ²Π΅ Π² стандартната Π±ΠΈΠ±Π»ΠΈΡ‚Π΅ΠΊΠ° Π½Π° Scala – Numeric, Ordering
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ Π΅Π·ΠΈΡ†ΠΈ – Haskell ΠΈ Rust (ΠΈ ΠΎΡ‰Π΅ Rust). Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° тях ΠΈ Scala
    • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° type class-ΠΎΠ²Π΅. ВСория Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ
    • Type class-ΠΎΠ²Π΅ Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΈ сСриализация, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° JSON сСриализация
    • Monoid ΠΈ Semigroup Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Cats
    • Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ (Π½Π΅ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈ Π½Π° Π»Π΅ΠΊΡ†ΠΈΠΈΡ‚Π΅)
  • 10 – Монади ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²ΠΈ [ΠΊΠΎΠ΄]
    • Π•Ρ„Π΅ΠΊΡ‚ΠΈ. Абстракция Π½Π°Π΄ ΠΎΠ±Ρ‰ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈ
    • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Аксиоми
    • Π•Ρ„Π΅ΠΊΡ‚Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • Монада – type class Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π΅Ρ„Π΅ΠΊΡ‚Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • ДСфиниция Π½Π° ΠΌΠΎΠ½Π°Π΄Π° Ρ‡Ρ€Π΅Π· compose ΠΈ unit. Аксиоми
    • ДСфиниция Ρ‡Ρ€Π΅Π· flatMap ΠΈ unit. Аксиоми
    • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΌΠΎΠ½Π°Π΄ΠΈ. map, flatten, zip, map2, sequence ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ. АлтСрнативни Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈ
    • РСализация Π½Π° type class Π·Π° ΠΌΠΎΠ½Π°Π΄Π°, с ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
    • Монадни инстанции Π½Π° основни Π΅Ρ„Π΅ΠΊΡ‚Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅
    • РСализация Π½Π° Maybe (Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° Option), ΠΌΠΎΠ½Π°Π΄Π½Π° инстанция към Maybe ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ½Π°Π΄Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
    • Id ΠΌΠΎΠ½Π°Π΄Π°
    • State ΠΌΠΎΠ½Π°Π΄Π°
    • Π€ΡƒΠ½ΠΊΡ‚ΠΎΡ€ΠΈ ΠΊΠ°Ρ‚ΠΎ гСнСрализация Π½Π° ΠΌΠΎΠ½Π°Π΄ΠΈΡ‚Π΅. Аксиоми
    • Π“Ρ€Π΅ΡˆΠ½ΠΈ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ Π½Π° ΠΌΠΎΠ½Π°Π΄ΠΈ
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° валидация с Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ½Π°Π΄Π° Π·Π° Validated
    • Апликатив. Π Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠΎΠ½Π°Π΄Π° ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ².
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° валидация с Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ с Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²
    • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²ΠΈ. map3, map4, sequence, traverse.
    • Апликативни инстанции Π½Π° основни Π΅Ρ„Π΅ΠΊΡ‚Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅
    • Traversable - гСнСрализация Π½Π° sequence ΠΈ traverse
  • 11 – Cats ΠΈ Cats Effect [ΠΊΠΎΠ΄]
    • Typelevel.scala СкосистСмата
    • Cats – Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, осигуряваща абстракции Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅
      • type class-ΠΎΠ²Π΅
      • Ρ‚Π΅Ρ…Π½ΠΈ инстанции
      • синтаксис
      • Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ
      • тСстванС Π½Π° аксиоми
    • Π’ΠΈΠΏΠΎΠ²Π΅ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ – Chain, Validated, Id, State, FunctionK (ΠΈΠ»ΠΈ ΠΎΡ‰Π΅ ~>), Nested
    • Бинтаксис Π·Π° Option, Either, ΠΈ Validated
    • ЙСархия ΠΎΡ‚ type class-ΠΎΠ²Π΅
    • Type class-ΠΎΠ²Π΅ Π·Π° сравнСниС ΠΈ Π½Π°Ρ€Π΅Π΄Π±Π° (Eq, Hash, PartialOrder, Order). Бинтакси
    • АлгСбрични type class-ΠΎΠ²Π΅. Semigroup ΠΈ Monoid. Бинтаксис
    • ВСстванС Π½Π° аксиоми – ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΌΠΎΠ½ΠΎΠΈΠ΄ Π·Π° Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ числа
    • Type class-ΠΎΠ²Π΅ Π·Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ синтаксис към всСки ΠΎΡ‚ тях
      • Foldable
      • Functor
      • Apply, Applicative ΠΈ Traverse
      • ApplicativeError
      • FlatMap, Monad ΠΈ MonadError
    • Parallel – type class Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, позволяващи послСдоватСлна (ΠΌΠΎΠ½Π°Π΄Π½Π°) ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° (Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Π°) ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°
      • ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ с инстанции Π·Π° IO/IO.Par, Either/Validated ΠΈ List/ZipList
      • синтаксис Π·Π° Parallel
    • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎΡΡ‚ Π½Π° Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€, Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ² ΠΈ ΠΌΠΎΠ½Π°Π΄Π°
      • ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ‚ΠΎΡ€ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ². Π’ΠΈΠΏ Nested
      • Π½Π΅Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° композиция Π½Π° ΠΌΠΎΠ½Π°Π΄ΠΈ Π² общия случай. ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎΡΡ‚ ΠΏΡ€ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ sequence (тоСст са Traverse). Π’ΠΈΠΏΠΎΠ²Π΅ OptionT ΠΈ EitherT ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Ρ‚Π΅Π·ΠΈ Π΄Π²Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ Ρ‚ΠΈΠΏΠ°
    • Всички ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° Cats
    • Cats Effect ΠΈ type class-ΠΎΠ²Π΅ Π·Π° конкурСнтност. Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡΡ‚Π° ΠΈΠΌ Π² Ρ‚ΠΈΠΏΠ° IO
    • Cats Effect fibers. Thread pool-ΠΎΠ²Π΅. РСализация Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Ρ€Π΅Π· IO. IOApp
    • Feature-ΠΈ Π½Π° Cats Effect спорСд type class-ΠΎΠ²Π΅Ρ‚Π΅. ЙСархия Π½Π° type class-ΠΎΠ²Π΅Ρ‚Π΅
      • MonadCancel – добавя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° кансСлиранС
      • Spawn – изпълнСниС Π½Π° мноТСство ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΈ fiber-Π°
      • Concurrent – Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° описванС Π½Π° бСзопасСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ сподСлСни рСсурси (Ρ‚. Π½Π°Ρ€. Ref) ΠΈ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° рСсурси (Ρ‚. Π½Π°Ρ€. Deferred)
      • Clock – описванС Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅
      • Temporal – приспиванС Π½Π° fiber Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅
      • Unique – Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ Ρ‚ΠΎΡƒΠΊΡŠΠ½ΠΈ
      • Sync – Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° синхронни изчислСния (Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΈ ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΈ) към Π΅Ρ„Π΅ΠΊΡ‚Π½ΠΈ (ΠΈ асинхронни) Ρ‚Π°ΠΊΠΈΠ²Π°
      • Async – Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° callback-Π±Π°Π·ΠΈΡ€Π°Π½ асинхронСн API към Π΅Ρ„Π΅ΠΊΡ‚Π΅Π½ Ρ‚Π°ΠΊΡŠΠ²
      • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ описванС Π½Π° ΠΏΠ»Π°Π½ Ρ‡Ρ€Π΅Π· всСки ΠΎΡ‚ type class-ΠΎΠ²Π΅Ρ‚Π΅. ИзпълнСниС Π½Π° ΠΏΠ»Π°Π½Π° – изпълнСниС Π½Π° страничнитС Π΅Ρ„Π΅ΠΊΡ‚ΠΈ (Ρ‡Ρ€Π΅Π· unsafeRun* ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅).
    • БСзопасСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ рСсурси, изискващи затварянС. Resource Π΅Ρ„Π΅ΠΊΡ‚
    • Всички ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° Cats Effect
  • 12 – Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Scala ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ [ΠΊΠΎΠ΄]
    • Какво постигнахмС досСга? Как ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ЀП ΠΏΡ€ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ?
    • Π˜Π·Π±ΠΎΡ€ Π½Π° IO Π΅Ρ„Π΅ΠΊΡ‚
    • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°
      • зависимости ΠΈ dependency injection. РСализация Ρ‡Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ (Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ конструктор Π½Π° клас). Ползи
      • Π½Π°Π²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° зависимоститС. Thin Cake Pattern
      • ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Resource Π·Π° бСзопасни инициализация ΠΈ затварянС Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ рСсурси
    • KΠ°ΠΊ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π½ΠΈ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ? Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ вмСсто ΠΏΠΎ слоСвС. Ползи
    • Π’Ρ€ΡŠΠ·ΠΊΠ° със SQL Π±Π°Π·Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· Doobie
      • ConnectionIO Π΅Ρ„Π΅ΠΊΡ‚ ΠΈ ΠΏΡ€ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π΄ΠΎ IO. Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ
      • ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ с Doobie.
        • заявки
        • сСриализация Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ към ΠΈ ΠΎΡ‚ заявка
        • Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ
        • Π’ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ обновяванС Π½Π° Π΄Π°Π½Π½ΠΈ – Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎ ΠΈ Π½Π° ΠΊΡƒΠΏ
    • JSON сСриализация ΠΈ дСсСриализация Ρ‡Ρ€Π΅Π· Circe
      • Encoder-ΠΈ ΠΈ decoder-ΠΈ
      • ΠŸΠΎΠ»ΡƒΠ°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° дСривация encoder-ΠΈ ΠΈ decoder-ΠΈ Ρ‡Ρ€Π΅Π· макроси
      • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ със Circe
    • HTTP прилоТСния Ρ‡Ρ€Π΅Π· http4s
      • HTTP ΠΊΠ°Ρ‚ΠΎ Π΅Ρ„Π΅ΠΊΡ‚Π½Π° функция ΠΎΡ‚ Request към Response
      • HTTP server Ρ‡Ρ€Π΅Π· http4s. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ ΠΊΠ°Ρ‚ΠΎ IOApp
      • HTTP routes – pattern matching ΠΏΠΎ Request-Π°
      • БСриализация ΠΈ дСсСриализация Π½Π° entity-Ρ‚Π°. Π’Ρ€ΡŠΡ‰Π°Π½Π΅ ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° JSON Ρ‡Ρ€Π΅Π· Circe
      • ДобавянС Π½Π° ΠΎΠ±Ρ‰Π° функционалност Ρ‡Ρ€Π΅Π· middlewares
      • HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚
      • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ с http4s
    • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Ρ‡Ρ€Π΅Π· Fs2
      • ΠžΡ‚ LazyList Π΄ΠΎ Π΅Ρ„Π΅ΠΊΡ‚Π΅Π½ Stream
      • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ трансфомрации Π½Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈ
      • Π’Ρ€ΡŠΠ·ΠΊΠ° с Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄ – Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма, TCP, UDP, ...
      • ΠŸΠΎΡ‚ΠΎΡ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΡ‚ HTTP Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚. ΠŸΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Doobie ΠΏΡ€Π΅Π· http4s ΡΡŠΡ€Π²ΡŠΡ€ Π΄ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚
      • Web socket-ΠΈ Ρ‡Ρ€Π΅Π· Fs2 ΠΈ http4s
      • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ с Fs2
    • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ със ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°
    • Цялостно ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡƒΠ΅Π± ΠΌΠ°Π³Π°Π·ΠΈΠ½

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси

Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π»Π΅ΠΊΡ†ΠΈΠΈ

Setup

Π˜ΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ инсталиран pandoc.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΈΠΌΠ° submodule зависимост към reveal.js. ΠŸΡ€ΠΈ/слСд ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅ΠΏΠΎΡ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅:

git submodule update –init

Local with Reaveal + Markdown

To be able to successfully load .md files w/ the Markdown plugin and no co policy pass the –allow-file-access-from-files flag for google chrome. If you use a real browser and not google chrome you are clearly an adult and can figure out how to fix it for yourself.

Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ€Π΅Ρ‚Π½Π° лСкция

cd lectures
./generate-presentation.sh <лСкция>

Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° всички Π»Π΅ΠΊΡ†ΠΈΠΈ

cd lectures
./build.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published