Project

General

Profile

Семинар » History » Revision 21

Revision 20 (Denis Buzdalov, 12/13/2020 07:56 PM) → Revision 21/22 (Denis Buzdalov, 12/13/2020 08:12 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" 
 Слайды той же лекции, прочитанной для другой аудитории: attachment:"2020.03.06-chuch-encoding-bis.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" 

 h3. 18.12.2019 -- Рекурсивные схемы: рекурсия в типах и коде 

 Слайды: attachment:"2019.12.18-recursion-schemes.pdf" 

 h3. 22.01.2020 -- Зависимые типы и соответствие Карри-Ховарда. Или интерпретация Брауэра-Гейтинга-Колмогорова. Свежие идеи, которым 90 лет 

 Слайды: attachment:"2020.01.22-bhk-deptyp.pdf" 
 Слайды той же лекции, прочитанной для другой аудитории: attachment:"2020.02.19-bhk-deptyp-bis.pdf" (чуть расширенное введение + исправления) 

 h3. 05.02.2020 -- Model-based тестирование протоколов и парсинг 

 Слайды: attachment:"2020.02.05-mbt-and-parsing.pdf" 

 h3. 24.11.2020 -- Генерация сложных тестовых данных со сложными инвариантами. Проблемы и _направления_ решений 

 Слайды: attachment:"2020.11.24-complex-data-gen.pdf" 
 Слайды той же лекции, прочитанной для другой аудитории: attachment:"2020.12.12-complex-data-gen.pdf" (исправления + две дополнительные мысли) 

 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; 
 ** ... 
 * зависимые типы (в частности, в применении к спецификации); 
 * ???.