Семинар » History » Revision 10
Revision 9 (Grigoriy Volkov, 11/25/2019 04:16 PM) → Revision 10/22 (Denis Buzdalov, 12/04/2019 07:34 PM)
|_Эта страница предназначена для свободного редактирования всеми участниками семинара_
_Замечания и дополнения приветствуются_|
h2. Цели
* знакомство незнакомых с основопологающими, но нетривиальными возможностями языков с развитой системой типов (например, параметрический и ad-hoc полиморфизм);
* знакомство незнакомых с прагматикой функциональных языков, неизвестными приёмами над известными языковыми конструкциями;
* приобщение специалистов по спецификации, тестированию и верификации к терминологии, приёмам и техникам функционального программирования.
h2. Интересные темы и направления для будущих семинаров
* объяснение техник, которые используются в наших библиотеках (и не только):
** рекурсивные схемы;
** lens/optics/category-arrow-iso-semiiso;
** Functor Functors / Higher-Kinded Data;
** property-based testing (на странице [[Haskell]] ссылки на много библиотек);
** ...;
* расширения haskell (language extensions):
** все, что связано с проблемами поиска instance и т.д., как он устроен, что за ошибки происходят при использовании MultiParamTypeClasses+FunctionalDependencies:
*** OVERLAPPABLE/OVERLAPPING
*** FlexibleInstances/FlexibleContexts
*** UndecidableInstances
** TypeFamilies + DataKinds и все-все-все - typelevel данные, аннотации, вычисления и все такое;
** ExistentialQuantification;
** ...;
* библиотеки -- как выбрать, когда несколько; сравнения, скандалы, интриги, расследования;
* системы эффектов в функциональных языках
** monad transformers, MTL;
** freer monads;
** capability;
** algebraic effects;
** ...
* зависимые типы (в частности, в применении к спецификации);
* ???.
h2. Семинары (темы и планы)
h3. 01.11.2019 -- Тайпклассы Haskell и для чего их можно использовать
Слайды: attachment:"2019.11.01-typeclasses-n-polymorphism.pdf"
h3. 13.11.2019 -- Данные не нужны: Что знал Алонзо Чёрч еще 80 лет назад
Слайды: attachment:"2019.11.13-church-encoding.pdf"
h3. 20.11.2019 -- Как построить (символьно интерпретируемый) EDSL
Слайды: attachment:"2019.11.20-symbolic-edsl.pdf"
h3. 04.12.2019 -- Как достигать желаемых эффектов
Слайды: attachment:"2019.12.04-mtl-and-effects.pdf"