@frp_ru

Страница 120 из 420
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
Мы берём Any, хуячим в Some, получаем Some[Any].
какой ты здесь сделал вывод?

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
ну и вот :3 https://habrahabr.ru/post/183150/
Обалденная статья для начинающих! Спасибо большое! Нужно обязательно добавить её в head, я думаю.

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

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
Я имел в виду, что, например, в тестах ее придется мокать. Как это делается и со стором redux, который так же иммутабельный.
let f :: S.State Int [String] f = do x <- S.get S.modify(+1) let a = "1 => " <> show x S.modify(+2) x2 <- S.get let b = "2 => " <> show x2 return $ [a, b] S.runState f 20

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

При том что работаешь на js

Denis
27.07.2017
05:15:32
@xgrommx Почему в js чате ты всегда используешь инопланетные языки? )
это настоящий строготипизированный язык с выводом типов, а не поделки все эти)

@xgrommx Почему в js чате ты всегда используешь инопланетные языки? )
и все эти курсы, уроки тоже в основном на haskell

Vadim
27.07.2017
05:19:27
Потому и не смотрю их )

На js тоже хватает уроков

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

На js тоже хватает уроков
это какое-то извращенство))

Lulz
27.07.2017
05:23:04
это какое-то извращенство))
погуглил твой ник. гугл выдал, что ты едешь в плюсы, это так? :D

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

Denis
27.07.2017
05:23:31
есть зигоморфизм, есть препроморфизм

а это его объединение

Страница 120 из 420