
Denis
26.07.2017
19:00:33
типы как объекты и функциональные стрелки как морфизмы
функторы как объекты и стрелки клейсли как морфизмы
ну и (.) и <=<

Ilya
26.07.2017
19:01:30
Погоди. Стоп.

Google

Ilya
26.07.2017
19:01:35
Option это и есть монада?

Denis
26.07.2017
19:01:42
да

Ilya
26.07.2017
19:01:51
Мы берём Any, хуячим в Some, получаем Some[Any].
Бля, да я же этим постоянно занимался.

Denis
26.07.2017
19:02:23
вот это открытие)

? animufag ?
26.07.2017
19:02:56
а в чём момент прозрения?

Ilya
26.07.2017
19:03:08
Когда понял что ебал себе мозги где-то 2 года.
А ответ был прямо под носом.

? animufag ?
26.07.2017
19:03:16

Denis
26.07.2017
19:03:24
f . id = f
id . g = g
(f . g) . h = f . (g . h)
так?

Yung
26.07.2017
19:03:48
Вот это поворот

? animufag ?
26.07.2017
19:04:07
хз

Google

Ilya
26.07.2017
19:04:13

? animufag ?
26.07.2017
19:04:15
вот это не жиза

Denis
26.07.2017
19:04:19
а для монад

Ilya
26.07.2017
19:04:32
Я всегда возводил это в какой-то дико замороченый концепт который где-то на заоблачном уровне.
Надо только орешек напрячь.

? animufag ?
26.07.2017
19:04:53
в монадах самый сок что они позволяют выражать эффекты
а так просто тайпкласс с законами
бездушный

Ilya
26.07.2017
19:05:18
Ну это уже хитрости применения.
Можно поподробней про сайдыэффекты?

? animufag ?
26.07.2017
19:05:36
не
только не сайдэффекты

Denis
26.07.2017
19:05:57
ща будет спойлер (моноид, в категории эндофункторов, кто скажет из всего того, что я написал как это доказать)
fk <=< pure = fk
pure <=< gk = gk
(fk <=< gk) <=< hk = fk <=< (gk <=< hk)

? animufag ?
26.07.2017
19:06:36
задумайся над тем что монадный инстанс списка позволяет выражать недетерменизм

Ilya
26.07.2017
19:06:42
Ну, я т.е. примерно понимаю что можно сайдэффект обернуть в монаду и тогда он происходит внутри монады, оставляя всё остальное за пределами и не пуская его наружу, но я чую что хуйню спизданул.

Denis
26.07.2017
19:06:47

Ilya
26.07.2017
19:10:49
Недетерминизм это рандом завязаный на системных часах?

Denis
26.07.2017
19:11:02
это когда ты не знаешь сколько будет

Google

Ilya
26.07.2017
19:11:14
Ну, т.е. всегда будет разное значение хотя функция вроде одна.

Denis
26.07.2017
19:11:15
колличество
список тому пример

Ilya
26.07.2017
19:11:33
Ну, окей, не рандом на часах но юзер инпут?

Denis
26.07.2017
19:11:34
может быть 1, 10 или вообще пустой

Ilya
26.07.2017
19:12:55
Ну, т.е. недетерминированный список это резиновый List из скалы который может быть с любым n аргументов, как ты его растянешь?

Denis
26.07.2017
19:14:25
[1,2,3] >>= \x -> generateRandomListWithRandomLength x

Ilya
26.07.2017
19:16:03
А. Ага.
Лана, на это вокруг головы обернуть.
В одиночестве.

pepsi ¯\_(ツ)_/¯
26.07.2017
19:41:26
Это как объяснить, что такое хлебобулочные изделия чуваку, который хлеб никогда не видел

Дмитрий
26.07.2017
19:42:41
А в чём суть — нет

Aleh
26.07.2017
20:21:20
и вот еще http://mightybyte.github.io/monad-challenges/
ну и вот :3 https://habrahabr.ru/post/183150/

illiatshurotshka❄️
26.07.2017
20:35:48
>хабрахабр

Denis
26.07.2017
20:56:33
или же https://medium.com/twelve-days-of-monad

Vadim
27.07.2017
02:56:11

Google

andretshurotshka?❄️кде
27.07.2017
02:58:16
Никогда не понимал этих картинок)

Vadim
27.07.2017
03:31:27
А вот в переводе на js: https://medium.com/@tzehsiang/javascript-functor-applicative-monads-in-pictures-b567c6415221

Denis
27.07.2017
03:43:01

Vadim
27.07.2017
03:43:55
Перевод на js я ещё не читал )

Denis
27.07.2017
03:50:17
http://adit.io/posts/2013-07-22-lenses-in-pictures.html

Vadim
27.07.2017
04:38:06
Я правильно понимаю, что использование монады State не очень-то согласуется с принципами функционального программирования? Ибо чем это отличается от простого сохранения промежуточного значения в переменной?

Admin
ERROR: S client not available

Denis
27.07.2017
04:38:51
Тем что все шаги иммутабельные

Vadim
27.07.2017
04:45:11
Но все равно чистота страдает.

Denis
27.07.2017
04:46:16
Что?
Я бы сказал что и у кого страдает

Gleb
27.07.2017
04:48:02
Vadim https://www.youtube.com/watch?v=7BPQ-gpXKt4&list=PLlb7e2G7aSpRDR44HMNqDHYgrAOPp7QLr
Вот потом он до монад постепенно дойдет
про контейнеры расскажет
там 9 лекция это будет, но советую все по порядку посомтреть

Vadim
27.07.2017
04:51:19
Что?
Полагаться на значение, хранимое где-то вне процесса это ненадежно.

Denis
27.07.2017
04:52:06
как это вне процесса?

Vadim
27.07.2017
04:52:31
как это вне процесса?
Имею виду, что несколько, например, асинхронных процессов могут одновременно обращаться данным одной и той же монады State .

Gleb
27.07.2017
04:54:14
хз зачем я это кинул не дочитав до конца проблемы =)

Denis
27.07.2017
04:54:29
пожалуй я не буду ничего отвечать)

Google

Дмитрий
27.07.2017
04:56:29

Vadim
27.07.2017
04:56:54
Ну ладно, я её пока в деле не пробовал. Может я действительно туплю )

Denis
27.07.2017
04:57:38

Vadim
27.07.2017
05:05:33
Я имел в виду, что, например, в тестах ее придется мокать. Как это делается и со стором redux, который так же иммутабельный.

Denis
27.07.2017
05:11:10

Vadim
27.07.2017
05:13:55
@xgrommx Почему в js чате ты всегда используешь инопланетные языки? )
При том что работаешь на js

Denis
27.07.2017
05:15:32

Vadim
27.07.2017
05:19:27
Потому и не смотрю их )
На js тоже хватает уроков

Denis
27.07.2017
05:22:06
S.runState (replicateM 10 f) 20

Lulz
27.07.2017
05:23:04

Vadim
27.07.2017
05:23:30
@xgrommx Почему ты столько времени проводишь в js чате? В чате извращенства? )

Denis
27.07.2017
05:23:31
есть зигоморфизм, есть препроморфизм
а это его объединение