I wonder if it makes sense to you :) :)
Apr. 18th, 2013 09:41 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
just wrote this funny presentation... questions/critique welcome
https://docs.google.com/presentation/d/1gsp3Ez0n5hLiQH11kiK_2I-VotXldnFaq8CJn7UMKcI/edit?usp=sharing
https://docs.google.com/presentation/d/1gsp3Ez0n5hLiQH11kiK_2I-VotXldnFaq8CJn7UMKcI/edit?usp=sharing
no subject
Date: 2013-04-19 07:13 am (UTC)no subject
Date: 2013-04-19 06:46 pm (UTC)no subject
Date: 2013-04-19 07:17 am (UTC)no subject
Date: 2013-04-19 06:47 pm (UTC)no subject
Date: 2013-04-19 07:40 am (UTC)Of course, I currently have my head buried in oceans of Javascript, so ...
no subject
Date: 2013-04-19 06:48 pm (UTC)And it kind of relates to JS too (beautiful language)
no subject
Date: 2013-04-19 07:55 am (UTC)4: у магмы ещё и единицы нету.
6: мне кажется, лучше не стесняться и сказать monoid homomorphisms: monoid functions создаёт ложное ощущение понятности.
7: непонятно кто такой свободный моноид, откуда он взялся, зачем он и почему он список.
8: почему reduce::List[A]->A, а не List[A]->B? Кто именно на этом слайде алгебра? Функция reduce?
Вот здесь хорошо описано как разные комбинации ассоциативности/идемпотентности/коммутативности выливаются в разные структуры данных.
По мелочи:
2: в третьем пункте = вместо ==, пробелы вокруг =, которых нет в других пунктах на слайде, и не хватает примера с правой единицей; в пятом пункте ++ вместо +; в шестом пункте нет примера с правой единицей
6: в третьем пункте умножение вместо сложения.
10: ++ для списка вместо + на предыдущих слайдах.
14: x Opx пробел пропущен.
no subject
Date: 2013-04-19 07:21 pm (UTC)6: я боюсь пугать публику - скаже homomorphism, у них веки смыкаются
7: тут да, нужно много сопровождающих слов; подумаю, можно ли выразить картинкой
За линк тоже огромное спасибо; свистнул картинку
no subject
Date: 2013-04-20 02:23 am (UTC)no subject
Date: 2013-04-20 04:29 am (UTC)no subject
Date: 2013-04-19 08:45 am (UTC)sum(Nil)=0; sum(list1+list2)=sum(list1)+sum(list2)
вообще-то у свободного моноида нужно ещё определить, что делать со списком одного элемента.
no subject
Date: 2013-04-19 07:23 pm (UTC)no subject
Date: 2013-04-20 07:30 am (UTC)На слайде sum(Nil)=1, а должно быть 0, и умножение сумм, а должно быть сложение. Хотя, если считать, что sum - это просто название, а реализация равна product, то да.
По поводу второго - дык, если просто задать sum(Nil)=e, sum(x++y)=sum(x) # sum(y), то никогда нельзя вычислить, чему равно sum(List(1)), а потому и чему равно sum от любого непустого списка.
no subject
Date: 2013-04-20 04:56 pm (UTC)no subject
Date: 2013-04-20 08:01 pm (UTC)Какой слайд объясняет, как это делается? Я как-то не вкурю.
Вот если ввести sum(List(x))=x, то понятно.
no subject
Date: 2013-04-20 09:23 pm (UTC)no subject
Date: 2013-04-20 09:37 pm (UTC)no subject
Date: 2013-04-20 09:41 pm (UTC)no subject
Date: 2013-04-19 10:59 pm (UTC)Or Monoid is a pattern?
If not, what is Monoid?
I was hoping that by 2nd or 3rd slide I'd be able to answer that question.
no subject
Date: 2013-04-19 11:03 pm (UTC)no subject
Date: 2013-04-22 09:10 pm (UTC)http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html