Skip to content

googleson78/fp-lab-2022-23

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Участие в курса

За да участвате в курса, трябва да се свържете с мен, за да предприема действия:

  • включване в "екип" в Microsoft Teams, в който да мога да ви сръчквам за обявления
  • взимане на данни нужни за подготовка за домашни и сформиране на таблица с оценки

Това се случва, като пишете на мен(Георги Людмилов Любенов) лично съобщение в Teams в следния формат:

<фн>,<две имена на кирилица>,<github потребителско име>

Teams

Курсът има канали във СУ Teams-а. В него ще се случват

  • обявления
  • групов чат
  • отговори на въпроси (или публично или в лични съобщения)
  • споделяне на интересни неща

За да можете да използвате Teams, трябва да си направите акаунт тук.

Ако някой няма възможност да си направи акаунт, моля да ми пише мейл.

Ето и покана за Team-а - https://teams.microsoft.com/l/team/19%3aYvIdww3GiebTFZLvN9UsWrr8aVVsJm_zAWupFNTVJcU1%40thread.tacv2/conversations?groupId=5bdcc12f-3b25-4e1c-9e32-7b84a8e9d1f5&tenantId=9d05c5fb-e448-4700-8a58-e15b93c84ea9

Контакти

  • Mail - [email protected]
  • Teams - Георги Людмилов Любенов
  • Twitter - @googleson78

Взимане на курса

Курсът се взима с домашни и проект.

Домашните не са задължителни, проектът е.

Имането на проект не гарантира взимането на предмета. Пример за кога би се случило това е ако не напишете нито едно домашно и изберете да правите проект, който дава минималния брой точки.

Домашните ще са между 3 и 7 на брой.

Домашните ще се предават в лично github хранилище за всеки човек чрез pull request.

(TODO конкретизирай точките)Проектът, който правите, може да е споделен между практикума и главната дисциплина, стига той да дава достатъчно точки.

Проектът се предава по същия начин както домашните - pull request във вашето хранилище в github, по който ви пиша обратна връзка.

Технически детайли

Инсталиране на инструменти за работа с Haskell

Имате няколко варианта.

Препоръчваният начин е да използвате ghcup - инструмент за менежиране на инструменти свързани с Haskell.

На началната страница на ghcup има едноредови инструкции за инсталирането на ghcup, заедно с gif, демонстриращ как да го използвате, за да инсталирате инструменти.

Алтернативно можете да разгледате по-подробните инструкции за инсталиране на ghcup.

След като го инсталирате, може да изпълните

> ghcup install ghc

или алтернативно, ghcup tui, след което можете с текстови интърфейс да си изберете какво искате да инсталирате.

След това, моля, проверете дали работи всичко като изпълните командата ghci в терминал.

Кратко разглеждане на основните Haskell инструменти, инсталирани чрез ghcup

Редактор и интеграция с Haskell

Препоръчаният метод за работа с Haskell е VSCode, заедно с HLS разширението.

То включва много полезни функционалности, така че е хубаво, ако ви е интересно да се запознаете повече с документацията му/питате мен въпроси за него.

Важно е да се отбележи, че докато работим с файл извън "проект" (което ще правим повечето време), е нужно да имаме инсталирано ghc и да е в PATH, за да работи HLS

Нямам против да ползвате <моя-любим-редактор> - аз ще ползвам vim докато ви показвам неща, като най-вероятно можете да си нагласите и HLS да работи с <моя-любим-редактор>. В такъв случай, можете лесно да се сдобиетe със HLS чрез ghcup.

Ако решите да не ползвате VSCode, трябва да измислим начин да си споделяте сесията в редактора си с мен, в случай че минем на дистанционно обучение.

Haskell ресурси

  • Донякъде плагиатствам от този курс

  • Книгата на която е базиран горният курс (и също я смятам за добър ресурс)

  • Силно препоръчително четиво свързано с

    • как да ни се налага да мислим по-малко докато програмираме
    • как да избягваме големи класове грешки с помощта на компилатора
    • ключова начин на мислене в Haskell
    • защо да програмираме на Haskell
  • Хубав talk/demo за неща които често ти се налагат често и как се правят те в Haskell - цък

  • Hoogle - търсене за хаскел функции (идентификатори) (и по типове!)

  • Hackage - търсене за хаскел пакети

  • Real World Haskell - практично насочена

    Малко остаряла.

  • Специализирани ресурси:

Съветвам ви директно да ме питате за повече ресурси ако ви интересува конкретна тема.


Курсът се подкрепя от Tweag

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published