Programare Logică și Funcțională
Pe acestă pagină găsiți suportul pentru activitățile de laborator și seminar la materia Programare Logică și Funcțională.
IMPORTANT! De parcurs pentru examen!Anunțuri
- Pregătirea (mai mult consultația) pentru examen va fi luni dimineață, ora 10, Online
- Extrasul de teorie pe care îl puteți folosi la examen este extrasul de teorie pe care îl aveți în fișierul cu exercițiile de la seminar. Voi pune și documentul final, pentru a-l putea avea printat.
- Pentru Haskell vă voi pregăti un document similar celui pe care l-ați avut la Prolog. Puteți veni cu el printat, sau puteți să îl folosiți direct de pe laptop/calculator la examen. Spre deosebire de Prolog, voi separa documentul cu informații teoretice de subiectul de examen.
- V-am pus mai sus un curs foarte important pe care vă rog să îl parcurgeți pentru examen, pe care îl vom relua și luni (aveți în curs QuickCheck și un model de examen).
- Recomand, evident, parcurgerea tuturor cursurilor pentru examen, în special a celor de Haskell. Orice din materia de curs se poate regăsi la examen!
- Vă reamintesc punctajele necesare pentru promovare pentru Haskell și Teorie: 15 din 30 la Haskell, 15 din 30 la Teorie.
- Rezultatele la Haskell încerc să vi le dau tot marți, după susținerea probei.
- Mult succes! (aveți nevoie)
Laboratoare
Laboratorul 1: Introducere în limbajul Prolog - sintaxă, programe, aritmetică și recursivitate[Soluție]
Laboratorul 2: Liste în Prolog, elemente de bază
[Soluție]
Laboratorul 3: Evaluări în calculul propozițional
[Soluție]
Laboratorul 4: Unificare în Prolog. Un puzzle și o problemă de grafuri
[Soluție]
Laboratorul 5: Algoritmi de căutare. Zebra puzzle. Arbori binari
[Soluție]
Laboratorul 6: Model - test de laborator (cu soluții)
Laboratorul 7: Testul de laborator
[Soluții Nr. 1] [Soluții Nr. 2]
Laboratorul 8: Introducere în Haskell
[Soluție]
Laboratorul 9: Liste în Haskell: recursivitate, comprehensiune, funcții de nivel înalt
(cerințele sunt în fișierul sursă)
Laboratorul 11: Foldr. Tipuri de date algebrice. Interacțiune cu monada IO.
[Soluție]
Laboratorul 12: recapitulare Haskell, nimic în plus față de noțiunile de mai sus.
Laboratorul 13: Monada Maybe. Monada Writer
[Soluție - monada Maybe]
[Soluție - monada Writer cu String]
[Soluție - monada Writer cu Liste de String]