Тук са събрани помощни материали за упражненията по Функционално програмиране за специалност Компютърни науки през учебната 2015/2016 във ФМИ. Това хранилище спомага учебните занятия на 5-та и 6-та група на 2-ри поток (при проф. Магдалина Тодорова), но може да бъде използвано от всички студенти, изучаващи Функционало програмиране във ФМИ.
Moodle курсът може да бъде намерен тук. В него могат да бъдат намерени по-важните съобщения, свързани с учебната дейност. Хранилището с кода от миналогодишния курс можете да намерите тук.
Кодът на Scheme е базиран на R5RS стандарта (с много малка част на Racket), а този на Haskell - на Haskell 98.
- Материалите за различните упражнения (планове на разгледаното и решения на задачите) са в директорията /exercises.
- Заданията за домашна работа и инструкции как да бъдат изпратени са в директорията /assignments.
- Задачите от контролните са в директорията /tests.
В някои от директориите има скриптове на име run.sh
. Те служат за изпълнение на тестовете за кода, публикуван тук.
Racket дистрибуция може да бъде свалена от официалния сайт на Racket. Ако не ви се инсталира Racket, можете да ползвате уеб-базирания repl.it. Обърнете внимание, че repl.it е базиран на R6RS стандарта и има някои дребни разминавания с R5RS. Въпреки това, той може да бъде използван за решаване на задачи без големи проблеми.
Ако ползвате DrRacket, не забравяйте първо да сложите R5RS за език, тъй като той не е зададен по подразбиране. Това става от менюто Language -> Choose Language -> Other Languages -> R5RS.
За да пишете на Haskell, можете да си свалите WinHugs и с него да зареждате .hs
файловете. Друг вариант е да използвате ghc пакета, съдържащ компилатор и интерактивна среда. За редактиране на Haskell код може да ви бъде удобен Sublime Text, който може да бъде надграден със SublimeHaskell.
Мейлът ми е georgi@forkbomb.nl. Можете да ми пишете с всякакви въпроси, забележки и коментари, дори да не сте от групите на които преподавам.
Ако откриете нещо, което според вас не е наред, не се притеснявайте да направите едно от следните неща:
- да създадете issue тук с описание какво точно не е наред
- да ми напишете мейл
Благодаря предварително!
Ресурсите по-долу са безплатни. Можете да намерите още препоръчана литература в анотацията на курса.