====== Logic Programming 2023/2024-winter ======
- **Introduction to Logic Programming. Syllabus. Terms, Predicates, Clauses. Basic Examples.** [2.10.2023;ali]
- **Introduction to Prolog. 3 Core Mechanisms: Unification, Resolution, DFS Backtracking Search. Examples. Numbers generation. SEND+MORE=MONEY** [16.10.2023;ali]
- **E-Learning: 30.10.2023:** **Prolog: Lists and Data Structures** [[https://www.metalevel.at/prolog|Chapters 0,1,2,3 and especially 4]] Also lectures Prolog-3 and Prolog-4 on lists (links below) [30.10.2023;ali]
- **Prolog: Lists as Data Structures. Basic Operations on Lists. Advanced Operations on Lists. Recursion vs. Iteration.** [13.11.2023;ali]
- **Knowledge Engineering with Prolog. Meta-Programming in Prolog. Example Applications.** [27.11.2023;ali]
----
[[https://www.metalevel.at/prolog|The Power of Prolog]]
====== Programowanie Logiczne ======
==== Programowanie w języku Prolog - wykłady 2020/2021 ====
Wykłady odbywają się we wtorki, 14:40-16:10 na UPEL/Moodle: [[https://upel2.cel.agh.edu.pl/wiet/course/view.php?id=1239 | Programowanie w języku Prolog 2021]]
- **Paradygmaty programowania: klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [2.03.2021; ALi]
- **Składnia Prologu. Termy i ich rola. Termy a listy. Obliczenia numeryczne w Prologu. Silnia. Rozmiana pieniędzy: rekurencja a iteracje. Mechanizm DFS z nawrotami. Przykład liczby.pl/różne warianty. Wymuszanie nawrotów: fail. Predykat odcięcia - cut. Warianty rozwiązania: SEND+MORE=MONEY.** [9.03.2021; Ali]
- E-Learning [16.03.2021]
- **Prolog: kontynuacja przykładów. Prolog: składnia i semantyka. Termy. Generacja termów: huge_tree. Unifikacja. Algorytm unifikacji termów. Podstawy logiczne Prologu: fakty, klauzule Horna, rezolucja, strategia SLD. Struktury listowe - wprowadzenie. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania, nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami.** [23.03.2021; ALi]
- **Listy: Przykład: (Bridge and Torch). Pobieranie i wstawianie elementu do listy. Mechanizmy obliczeniowe: rekurencja, iteracja, nawroty. Struktury listowe: operacje na zbiorach i sekwencjach. Wybrane operacje na listach: 1-N, N-1, sumowanie, odwracanie; mechanizm akumulatora. Przykłady zaawansowanych definicji/zadania ze str. 14, wykład 3.** [30.03.2021; ALi]
- **Struktury listowe. Operacje na zbiorach - realizacja. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań. Listy-Tricks. Rekurencja a iteracje; pętle z fail. Pamięć globalna: assert/retract.** [13.04.2021; ALi]
- **Listy - operacje zaawansowane - dokończenie. Metapredykaty operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Sterowanie wnioskowaniem: negacja (not), cut i fail. Wstęp do metaprogramowania. Przykłady metaprogramowania.** [20.04.2021; ALi]
- **Metaprogramowanie. Reprezentacja i przetwarzanie wiedzy. Przykłady zastosowań. Programowanie deklaratywne a proceduralne; Prolog a Python - porównanie wybranych konstrukcji. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. ECLiPSe CLP. B-Prolog, GNU Prolog. MiniZinc; Numberjack. ASP. Picat. Problog. Logica (Google).** [27.04.2021.04.2021; ALi]
----
Materiały do pobrania:
* {{ :pl:dydaktyka:pp:prolog_1_2021.pdf |Prolog-1: Syntax, Variables, Terms, Clauses}}
* {{ :pl:dydaktyka:pp:prolog_2021-2.pdf |Prolog-2: Substitutions and Unification}}
* {{ :pl:dydaktyka:pp:prolog_2021_3.pdf |Prolog-3: Lists in Prolog}}
* {{ :pl:dydaktyka:pp:prolog_2021_4.pdf |Prolog-4: Lists: Advanced Operations}}
* {{ :pl:dydaktyka:pp:prolog_2021-5.pdf |Prolog-5: Knowledge Representation. Metapredicates. Not, cut, fail.}}
* {{ :pl:dydaktyka:pp:prolog_2021_6.pdf |Prolog-6: Metaprogramming. Example Applications.}}
* {{ :pl:dydaktyka:pp:prolog-10-examples-2021.zip | Przykłady do wykładu 1}}
* {{ :pl:dydaktyka:pp:prolog-11-20-examples-2021.zip |Przykłady do wykładu 2}}
* {{ :pl:dydaktyka:pp:prolog-lists-2021.zip |Przykłady do wykładu 3}}
* {{ :pl:dydaktyka:pp:prolog-lists-advanced-2021.zip |Przykłady do wykładu 4}}
* {{ :pl:dydaktyka:pp:prolog-esst-examples.zip |A Set of Examples: Essential Thinking}}
* {{ :pl:dydaktyka:pp:python-prolog.zip |Prolog vs. Python by few examples}}
* {{ :pl:dydaktyka:pp:prolog.zip |Yet another examples in Prolog - 2021}}
----
* Prolog: programowanie deklaratywne. [materiał fakultatywny] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Prolog]]
* [[https://polydev.pl/2017/12/16/realne-zastosowania-jezyka-prolog/|Ciekawe zastosowania Prologu]]
* [[http://www.pathwayslms.com/swipltuts/html/|Web Applications in SWI-Prolog: A Tutorial]]
----
Inne - ciekawe materiały do studiowania w ramach samodzielnej aktywności:
* A Prolog interpreter in JavaScript [[http://tau-prolog.org/|Tau-Prolog]]
* Answer Set Programming (ASP) [[https://potassco.org/|Potassco ASP]]
* B-Prolog + Constraints [[http://www.picat-lang.org/bprolog/|B-Prolog]]
* GNU Prolog + Constraints [[http://www.gprolog.org/|GNU Prolog]]
* The ECLiPSe Constraint Programming System [[http://www.eclipseclp.org/|ECLiPSe]]
* New: Picat [[http://www.picat-lang.org/|Picat]]
* SWI-Prolog - Packages + clp(fd) [[http://www.swi-prolog.org/|SWI-Prolog]]
* New: Problog [[https://dtai.cs.kuleuven.be/problog/|Problog]]
* New: Logica - Open Source Project (by Google): [[https://opensource.googleblog.com/2021/04/logica-organizing-your-data-queries.html]]
* New: Logica - Modern Logic Programming Language [[https://logica.dev/]]
Inne - do uzgodnienia.
__Selected links:__
* Prolog [[https://en.wikipedia.org/wiki/Prolog|Prolog]]
* Prolog - Wikibooks: [[https://en.wikibooks.org/wiki/Prolog|Prolog]]
* Prolog - Books: [[http://freecomputerbooks.com/langPrologBooks.html|Free Books on Prolog]]
----
__Useful pages: courses + tutorials + examples:__
* [[https://ktiml.mff.cuni.cz/~bartak/|Page of Roman Barták]]
* [[http://hakank.org/|The famous Hakank Page]]
* New: [[https://www.coursera.org/projects/prolog-for-beginners-fhqrd|Coursera: Prolog-for-beginners]]
* New: [[https://www.metalevel.at/prolog|The Power of Prolog - by Markus Triska (2005-2021)]] With numerous great live presentations on youtube!
===== WYKŁADY: Programowanie w Logice (Prolog) =====
==== Programowanie w Logice: Edycja 2019 (zima; 2h/week)====
Wykłady odbywają się we wtorki, 9:30-11:00, sala 224/C-2.
- **Paradygmaty programowania: klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [1.10.2019; ALi]
- **Obliczenia numeryczne w Prologu. Silnia. Mechanizm DFS z nawrotami. Przykład liczby.pl/warianty. Wymuszanie nawrotów: fail. Pamięć globalna: assert/retract. Wprowazdzenie do termów. Zmienne i ich rola oraz interpretacja/uzytkowanie.** [8.10.2019; Ali]
- **Prolog: kontynuacja przykładów. Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. Podstawy logiczne Prologu: fakty, klauzule Horna, rezolucja. Struktury listowe - wprowadzenie.** [15.10.2019; ALi]
- **Algorytm unifikacji termów. Mechanizmy obliczeniowe: rekurencja, iteracja, nawroty. Struktury listowe. Termy a listy. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania, nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami. Wybrane operacje na listach. Przykłady zaawansowanych definicji/zadania.** [22.10.2019; ALi]
- **Struktury listowe. Bazowe definicje rekurencyjne. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań (Bridge and Torch; Einstein). Listy-Tricks. Rekurencja a iteracje; pętle z fail.** [29.10.2018; ALi]
- **Listy - operacje zaawansowane - dokończenie. Metapredykaty operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Sterowanie wnioskowaniem: negacja (not), cut i fail. Wstęp do metaprogramowania. Przykłady metaprogramowania.** [5.12.2019; ALi]
- **Metaprogramowanie. Reprezentacja i przetwarzanie wiedzy. Przykłady zastosowań. Programowanie deklaratywne a proceduralne; Prolog a Python - porównanie wybranych konstrukcji. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. ECLiPSe CLP. B-Prolog. Numberjack. ASP.** [12.11.2019; ALi]
Prezentacje specjalne:
* {{ :pl:dydaktyka:pp:picat.pdf |Picat}},
* [[https://github.com/AdamKlekowski/prolog_Bayesian_networks|Problog]],
* {{ :pl:dydaktyka:pp:prologibmnotes.pdf |Watson - IBM}}
Kolokwium zaliczeniowe: termin do ustalenia.
[[http://home.agh.edu.pl/~ligeza/wiki/|Materiały na mojej stronie www]]; zakładki:
* [[http://home.agh.edu.pl/~ligeza/wiki/prolog:intro|**Prolog**]] oraz
* [[http://home.agh.edu.pl/~ligeza/wiki/prolog:course|**New Course of Prolog**]]
E-Learning/materiał uzupełniający:
----
Przykłady z wykładów - do pobrania: {{ :pl:dydaktyka:pp:dydactic-2019.zip |Examples}} prezentacja i komentarze - na wykładzie.
----
* Prolog: programowanie deklaratywne. [materiał fakultatywny] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Prolog]]
* [[https://polydev.pl/2017/12/16/realne-zastosowania-jezyka-prolog/|Ciekawe zastosowania Prologu]]
* [[http://www.pathwayslms.com/swipltuts/html/|Web Applications in SWI-Prolog: A Tutorial]]
----
Inne - ciekawe materiały do studiowania w ramach samodzielnej aktywności:
* A Prolog interpreter in JavaScript [[http://tau-prolog.org/|Tau-Prolog]]
* Answer Set Programming (ASP) [[https://potassco.org/|Potassco ASP]]
* B-Prolog + Constraints [[http://www.picat-lang.org/bprolog/|B-Prolog]]
* GNU Prolog + Constraints [[http://www.gprolog.org/|GNU Prolog]]
* The ECLiPSe Constraint Programming System [[http://www.eclipseclp.org/|ECLiPSe]]
* Picat [[http://www.picat-lang.org/|Picat]]
* SWI-Prolog - Packages + clp(fd) [[http://www.swi-prolog.org/|SWI-Prolog]]
* Problog [[https://dtai.cs.kuleuven.be/problog/|Problog]]
Inne - do uzgodnienia.
__Selected links:__
* Prolog [[https://en.wikipedia.org/wiki/Prolog|Prolog]]
* Prolog - Wikibooks: [[https://en.wikibooks.org/wiki/Prolog|Prolog]]
* Prolog - Books: [[http://freecomputerbooks.com/langPrologBooks.html|Free Books on Prolog]]
----
__Useful pages: courses + tutorials + examples:__
* [[https://ktiml.mff.cuni.cz/~bartak/|Page of Roman Barták]]
* [[http://hakank.org/|The famous Hakank Page]]
==== Programowanie w Logice: Edycja 2018 (zima; 3h/week)====
- **Paradygmaty programowania: klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [5.10.2018; ALi]
- **Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. Struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2.** [12.10.2018; ALi]
- **Wykład w dn. 19.10.2018 nie odbędzie się** [ALi]
- **Struktury listowe. Termy a listy. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2. Interpretacja działania - drzewo wnioskowania, nawroty. Listy jako sekwencje, zbiory i zbiory z powtórzeniami. Wybrane operacje na listach. Przykłady zaawansowanych definicji/zadania.** [26.10.2018; ALi]
- **Prolog: Struktury listowe. Sortowanie. Zaawansowane operacje na listach; przykłady zadań i ich rozwiązań. Rekurencja a iteracje; pętle z fail. Metapredykaty operacji na listach. Wstęp do metaprogramowania. Przykłady metaprogramowania.** [9.11.2018; ALi]
- Njabliższy wykład - już ostatni : Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie. Programowanie z ograniczeniami (Constraint Programming). Biblioteka clpfd. [16.11.2018; ALi] Prezentacja specjalna: deklaratywny język programowania z ograniczeniami [[http://www.picat-lang.org/|Picat]]
- Programowanie deklaratywne a proceduralne. Prolog a Python - porównanie wybranych konstrukcji. Programowania z ograniczeniami (clp(fd)). ECLiPSe CLP. B-Prolog. Numberjack. ASP. Problog. Picat. [materiał fakultatywny]
- E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Prolog]]
----
* [[http://home.agh.edu.pl/~ligeza/wiki/|Homepage: A.Ligeza - Prolog x2 i inne]]
* [[https://polydev.pl/2017/12/16/realne-zastosowania-jezyka-prolog/|Ciekawe zastosowania Prologu]]
* [[http://www.pathwayslms.com/swipltuts/html/|Web Applications in SWI-Prolog: A Tutorial]]
----
Propozycje prezentacji do przygotowania w ramach samodzielnej aktywności:
* Answer Set Programming (ASP) [[https://potassco.org/|Potassco ASP]]
* B-Prolog + Constraints [[http://www.picat-lang.org/bprolog/|B-Prolog]]
* GNU Prolog + Constraints [[http://www.gprolog.org/|GNU Prolog]]
* Picat [[http://www.picat-lang.org/|Picat]]
* SWI-Prolog - Packages + clp(fd) [[http://www.swi-prolog.org/|SWI-Prolog]]
* Problog [[https://dtai.cs.kuleuven.be/problog/|Problog]]
Inne - do uzgodnienia.
__Selected links:__
* Prolog [[https://en.wikipedia.org/wiki/Prolog|Prolog]]
* Prolog - Wikibooks: [[https://en.wikibooks.org/wiki/Prolog|Prolog]]
* Prolog - Books: [[http://freecomputerbooks.com/langPrologBooks.html|Free Books on Prolog]]
----
__Useful pages: courses + tutorials + examples:__
* [[https://ktiml.mff.cuni.cz/~bartak/|Page of Roman Barták]]
* [[http://hakank.org/|The famous Hakank Page]]
==== Edycja 2018 (3h/week)====
- **Paradygmaty programowania: klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [1.03.2018; ALi]
- **E-learning: Read: {{:pl:dydaktyka:pp:prolog-syntax-terms.pdf|Prolog-syntax-terms}}** [8.03.2018; ALi]. Przeanalizuj działanie programów z wykładu: {{ :pl:dydaktyka:pp:prolog-simple-programs-1.tar.gz |}}. Jak "usprawnić" SEND+MORE=MONEY?
- **Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. Struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2.** [15.03.2018; ALi]
- **Prolog: Struktury listowe. Sortowanie. Operacje zaawansowane. Rekurencja a iteracje. Metapredykaty operacji na listach.** [22.03.2018; ALi]
- E-learning: Zadania do rozwiązania - z wykładu [Prolog-lists: str. 14]. [29.03.2018; ALi]
- E-learning: [5.04.2018; ALi] Materiał do samodzielnego studiowania: [[https://ktiml.mff.cuni.cz/~bartak/guides.html|On-line Guide to Prolog Programming by Roman Bartak]]; polecam materiał dotyczący operacji na listach. Ponadto: [[https://sites.google.com/site/prologsite/prolog-problems|Prolog 99]]; enjoy :-D
- **Zaawansowane definicje operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie.** [12.04.2018; ALi]
- **Programowanie deklaratywne a proceduralne. Prolog a Python - porównanie wybranych konstrukcji. Programowania z ograniczeniami (clp(fd)). ECLiPSe CLP. B-Prolog. Numberjack. ASP. Problog. Picat.** [19.04.2018; ALi]
- E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Prolog]]
- Wprowadzenie do języka Haskell. [26.04.2018; PTM]
----
==== Edycja 2017 (3h/week)====
- **Paradygmaty programowania: klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. 10 prostych przykładów** [2.03.2017; ALi]
- **Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. Struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2.** [9.03.2017; ALi]
- **Prolog: Struktury listowe. Sortowanie. Operacje zaawansowane. Rekurencja a iteracje. Metapredykaty operacji na listach.** [16.03.2017; ALi]
- **Zaawansowane definicje operacji na listach. Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie.** [23.03.2017; ALi]
- **Wprowadzenie do języka Python. Prolog a Python - porównanie wybranych konstrukcji. ASP. Problog. Picat.** [30.03.2017; ALi]
- E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Prolog]]
- Wprowadzenie do języka Haskell. i dalej...
==== Edycja 2016 (3h/week)====
- **Paradygmaty programowania: klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. Termy. ** [26.02.2016; ALi]
- **Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. Struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2.** [4.03.2016; ALi]
- **Prolog: Struktury listowe. Sortowanie. Operacje zaawansowane. Metapredykaty operacji na listach.** [11.03.2016; ALi]
- **Wprowadzenie do języka Haskell.** [18.03.2016; PTM]
- **Prolog: reprezentacja i przetwarzanie wiedzy. Metaprogramowanie.** [31.03.2016; ALi]
- **Wprowadzenie do języka Python.** [7.04.2016; ALi]
- E-Learning: Prolog: programowanie deklaratywne. [materiał fakultatywny] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Prolog]]
- Haskell [14.04.2016] i dalej...
==== Edycja 2015 (3h/week)====
- **Paradygmaty programowania: klasyfikacje języków programowania. Języki proceduralne a deklaratywne. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. Składnia Prologu. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. Termy. ** [5.03.2015]
- **E-Learning: Prolog: programowanie deklaratywne. ** [12.03.2015] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Data Structures + Lists]] (Do przerobienia: //First Steps in Prolog// oraz //Prolog Data Structures: List Processing//).
- Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna.
- Prolog: struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2.
- Prolog: wybrane zagadnienia zaawansowane.
==== Edycja 2014 (3h/week)====
- **Paradygmaty programowania: klasyfikacje języków programowania. Programowanie logiczne: Prolog. Intuicyjne przedstawienie Prologu. ** [6.03.2014]
- **Prolog: programowanie deklaratywne. Model obliczeniowy: implementacja DFS, nawroty, //backtracking//. Indeterminizm. Zmienne i ich rola. ** [13.03.2014]
- **Prolog: składnia i semantyka. Termy. Unifikacja. Pamięć wewnętrzna. ** [20.03.2014]
- **Prolog: struktury listowe. Konstrukcja, rola i obsługa list. Predykaty member/2, select/3 i append/2. **[27.03.2014]
- **E-learning: Prolog: wybrane zagadnienia zaawansowane.** [3.04.2014] [[http://kti.mff.cuni.cz/~bartak/prolog/contents.html|Data Structures + Lists]] (Do przerobienia: //First Steps in Prolog// oraz //Prolog Data Structures: List Processing//).
===== LABORATORIUM =====
==== Prolog ====
**[[pl:prolog:start|Kurs z Prologu]]**
----
- {{:pl:dydaktyka:pp:prolog-syntax-terms.pdf|Prolog-syntax-terms}}
- {{:pl:dydaktyka:pp:prolog-substitutions-unification.pdf|Prolog-substitutions-unification}}
- {{:pl:dydaktyka:pp:prolog-lists.pdf|Prolog-lists}}
- {{:pl:dydaktyka:pp:prolog-lists-advanced.pdf|Prolog-lists-advanced}}
==== Haskell ====
* [[http://home.agh.edu.pl/~mwypych/doku.php?id=letni:hs4javadev|Java vs Haskell]]
* [[http://learnyouahaskell.com/chapters|Learn You a Haskell for Great Good!]] (podręcznik online)
LABORATORIA:
- [[.haskell:lab-intro|Wprowadzenie do Haskella]]
- [[.haskell:lab-simple-funcs|Funkcje i listy]]
- [[.haskell:lab-more-funcs|Więcej funkcji]]
- [[.haskell:lab-monads-types|Typy i Monady]]
- [[.haskell:lab-io|Haskell IO]]
- [[.haskell:lab-hunit|HUnit]]
Instrukcje opracowano na podstawie: [[http://learnyouahaskell.com/chapters|podręcznika]], [[https://courses.edx.org/courses/course-v1:DelftX+FP101x+3T2015/course/|kursu na edX]], [[https://www.futurelearn.com/courses/functional-programming-haskell/|kursu na FutureLearn]], [[https://www.hackerrank.com/domains/fp|zadań z HackerRank]]