Семинар » History » Version 21
Denis Buzdalov, 12/13/2020 08:12 PM
1 | 1 | Denis Buzdalov | |_Эта страница предназначена для свободного редактирования всеми участниками семинара_ |
---|---|---|---|
2 | _Замечания и дополнения приветствуются_| |
||
3 | |||
4 | h2. Цели |
||
5 | |||
6 | * знакомство незнакомых с основопологающими, но нетривиальными возможностями языков с развитой системой типов (например, параметрический и ad-hoc полиморфизм); |
||
7 | * знакомство незнакомых с прагматикой функциональных языков, неизвестными приёмами над известными языковыми конструкциями; |
||
8 | 21 | Denis Buzdalov | * приобщение специалистов по спецификации, тестированию и верификации к терминологии, приёмам и техникам функционального программирования; |
9 | * обмен интересными приёмами, знаниями и идеями про функциональное программирование. |
||
10 | 1 | Denis Buzdalov | |
11 | h2. Семинары (темы и планы) |
||
12 | |||
13 | h3. 01.11.2019 -- Тайпклассы Haskell и для чего их можно использовать |
||
14 | |||
15 | 5 | Denis Buzdalov | Слайды: attachment:"2019.11.01-typeclasses-n-polymorphism.pdf" |
16 | 1 | Denis Buzdalov | |
17 | 5 | Denis Buzdalov | h3. 13.11.2019 -- Данные не нужны: Что знал Алонзо Чёрч еще 80 лет назад |
18 | |||
19 | Слайды: attachment:"2019.11.13-church-encoding.pdf" |
||
20 | 1 | Denis Buzdalov | Слайды той же лекции, прочитанной для другой аудитории: attachment:"2020.03.06-chuch-encoding-bis.pdf" (изменённое соотношение сторон, мелкие исправления + пример из первой лекции) |
21 | |||
22 | h3. 20.11.2019 -- Как построить (символьно интерпретируемый) EDSL |
||
23 | |||
24 | Слайды: attachment:"2019.11.20-symbolic-edsl.pdf" |
||
25 | |||
26 | h3. 04.12.2019 -- Как достигать желаемых эффектов |
||
27 | |||
28 | Слайды: attachment:"2019.12.04-mtl-and-effects.pdf" |
||
29 | |||
30 | h3. 18.12.2019 -- Рекурсивные схемы: рекурсия в типах и коде |
||
31 | |||
32 | Слайды: attachment:"2019.12.18-recursion-schemes.pdf" |
||
33 | |||
34 | h3. 22.01.2020 -- Зависимые типы и соответствие Карри-Ховарда. Или интерпретация Брауэра-Гейтинга-Колмогорова. Свежие идеи, которым 90 лет |
||
35 | |||
36 | Слайды: attachment:"2020.01.22-bhk-deptyp.pdf" |
||
37 | Слайды той же лекции, прочитанной для другой аудитории: attachment:"2020.02.19-bhk-deptyp-bis.pdf" (чуть расширенное введение + исправления) |
||
38 | |||
39 | h3. 05.02.2020 -- Model-based тестирование протоколов и парсинг |
||
40 | |||
41 | Слайды: attachment:"2020.02.05-mbt-and-parsing.pdf" |
||
42 | |||
43 | h3. 24.11.2020 -- Генерация сложных тестовых данных со сложными инвариантами. Проблемы и _направления_ решений |
||
44 | |||
45 | Слайды: attachment:"2020.11.24-complex-data-gen.pdf" |
||
46 | 17 | Denis Buzdalov | Слайды той же лекции, прочитанной для другой аудитории: attachment:"2020.12.12-complex-data-gen.pdf" (исправления + две дополнительные мысли) |
47 | 21 | Denis Buzdalov | |
48 | h2. Интересные темы и направления для будущих семинаров |
||
49 | |||
50 | * объяснение техник, которые используются в наших библиотеках (и не только): |
||
51 | ** рекурсивные схемы; |
||
52 | ** lens/optics/category-arrow-iso-semiiso; |
||
53 | ** Functor Functors / Higher-Kinded Data; |
||
54 | ** property-based testing (на странице [[Haskell]] ссылки на много библиотек); |
||
55 | ** ...; |
||
56 | * расширения haskell (language extensions): |
||
57 | ** все, что связано с проблемами поиска instance и т.д., как он устроен, что за ошибки происходят при использовании MultiParamTypeClasses+FunctionalDependencies: |
||
58 | *** OVERLAPPABLE/OVERLAPPING |
||
59 | *** FlexibleInstances/FlexibleContexts |
||
60 | *** UndecidableInstances |
||
61 | ** TypeFamilies + DataKinds и все-все-все - typelevel данные, аннотации, вычисления и все такое; |
||
62 | ** ExistentialQuantification; |
||
63 | ** ...; |
||
64 | * библиотеки -- как выбрать, когда несколько; сравнения, скандалы, интриги, расследования; |
||
65 | * системы эффектов в функциональных языках |
||
66 | ** monad transformers, MTL; |
||
67 | ** freer monads; |
||
68 | ** capability; |
||
69 | ** algebraic effects; |
||
70 | ** ... |
||
71 | * зависимые типы (в частности, в применении к спецификации); |
||
72 | * ???. |