Семинар » History » Version 11
Denis Buzdalov, 12/16/2019 03:05 PM
1 | 1 | Denis Buzdalov | |_Эта страница предназначена для свободного редактирования всеми участниками семинара_ |
---|---|---|---|
2 | _Замечания и дополнения приветствуются_| |
||
3 | |||
4 | h2. Цели |
||
5 | |||
6 | * знакомство незнакомых с основопологающими, но нетривиальными возможностями языков с развитой системой типов (например, параметрический и ad-hoc полиморфизм); |
||
7 | * знакомство незнакомых с прагматикой функциональных языков, неизвестными приёмами над известными языковыми конструкциями; |
||
8 | * приобщение специалистов по спецификации, тестированию и верификации к терминологии, приёмам и техникам функционального программирования. |
||
9 | |||
10 | 9 | Grigoriy Volkov | h2. Интересные темы и направления для будущих семинаров |
11 | 1 | Denis Buzdalov | |
12 | 2 | Grigoriy Volkov | * объяснение техник, которые используются в наших библиотеках (и не только): |
13 | 1 | Denis Buzdalov | ** рекурсивные схемы; |
14 | 2 | Grigoriy Volkov | ** lens/optics/category-arrow-iso-semiiso; |
15 | ** Functor Functors / Higher-Kinded Data; |
||
16 | 1 | Denis Buzdalov | ** property-based testing (на странице [[Haskell]] ссылки на много библиотек); |
17 | ** ...; |
||
18 | * расширения haskell (language extensions): |
||
19 | 9 | Grigoriy Volkov | ** все, что связано с проблемами поиска instance и т.д., как он устроен, что за ошибки происходят при использовании MultiParamTypeClasses+FunctionalDependencies: |
20 | *** OVERLAPPABLE/OVERLAPPING |
||
21 | *** FlexibleInstances/FlexibleContexts |
||
22 | *** UndecidableInstances |
||
23 | 2 | Grigoriy Volkov | ** TypeFamilies + DataKinds и все-все-все - typelevel данные, аннотации, вычисления и все такое; |
24 | ** ExistentialQuantification; |
||
25 | ** ...; |
||
26 | 1 | Denis Buzdalov | * библиотеки -- как выбрать, когда несколько; сравнения, скандалы, интриги, расследования; |
27 | * системы эффектов в функциональных языках |
||
28 | ** monad transformers, MTL; |
||
29 | ** freer monads; |
||
30 | ** capability; |
||
31 | ** algebraic effects; |
||
32 | ** ... |
||
33 | * зависимые типы (в частности, в применении к спецификации); |
||
34 | * ???. |
||
35 | |||
36 | h2. Семинары (темы и планы) |
||
37 | |||
38 | h3. 01.11.2019 -- Тайпклассы Haskell и для чего их можно использовать |
||
39 | |||
40 | 5 | Denis Buzdalov | Слайды: attachment:"2019.11.01-typeclasses-n-polymorphism.pdf" |
41 | 1 | Denis Buzdalov | |
42 | 5 | Denis Buzdalov | h3. 13.11.2019 -- Данные не нужны: Что знал Алонзо Чёрч еще 80 лет назад |
43 | |||
44 | Слайды: attachment:"2019.11.13-church-encoding.pdf" |
||
45 | 6 | Grigoriy Volkov | |
46 | 7 | Grigoriy Volkov | h3. 20.11.2019 -- Как построить (символьно интерпретируемый) EDSL |
47 | 6 | Grigoriy Volkov | |
48 | 8 | Grigoriy Volkov | Слайды: attachment:"2019.11.20-symbolic-edsl.pdf" |
49 | 10 | Denis Buzdalov | |
50 | h3. 04.12.2019 -- Как достигать желаемых эффектов |
||
51 | |||
52 | Слайды: attachment:"2019.12.04-mtl-and-effects.pdf" |
||
53 | 11 | Denis Buzdalov | |
54 | h3. 18.12.2019 -- Рекурсивные схемы: рекурсия в типах и коде |