@frp_ru

Страница 84 из 420
Дмитрий
21.06.2017
12:23:08
чего же?) можно
Ну например .cata / .case я встречал в основном только в daggy и union-type)

Denis
21.06.2017
12:23:27
там это не то

там это как паттерн матчинг

а я говорю про generalized version of fold/unfold

Google
Дмитрий
21.06.2017
12:33:10
Андрей
21.06.2017
12:37:23
+1 очень клевая тема)

Denis
21.06.2017
12:37:39


+1 очень клевая тема)
эм, а мы не знакомы?)

Сергей
21.06.2017
12:38:09
Monada — рекомендовать другу

Андрей
21.06.2017
13:03:23
@xgrommx ну мы как то общались на fby минском но не думаю что ты меня помнишь :)

Андрей
21.06.2017
14:10:09
@xgrommx https://github.com/typeetfunc

Gleb
21.06.2017
14:22:51
Скажите, в чем принципиальная разница между вычислениями при использовании монад и кучи compose'ов?

Gleb
21.06.2017
14:23:33
Ну а кроме шуток

Можно ссылкой в статью, я просто таких не нашел

Vladimir
21.06.2017
14:24:15
Ну а кроме шуток
А кто шутил?

Google
? animufag ?
21.06.2017
14:24:39
Как монада заменяет композ?

Или я не понял формулировку?

Gleb
21.06.2017
14:28:02
Наверняка многие прочли most adequate guide js и там глава с композициями перетекает в монады, и то и то понятно, тем более с примерами близкими к жизни, но я как понял монады это какой то частный случай композиции ведь? я что Maybe что Either могу не менее декларативно описать compos'ами, разве нет?

Дмитрий
21.06.2017
14:30:54
Не совсем. Точнее, описав это всё с той же эффективностью, ты просто ещё раз сделаешь реализацию этих самых монад)

Aleh
21.06.2017
14:32:00
монада для сокрытия вычисления

Gleb
21.06.2017
14:33:20
То есть то что она контейнер и имеет map ит прочее делает ее сокрытой а если это был compose из compose то он не был бы сокрытым?

Aleh
21.06.2017
14:33:32
ну вроде того

потому что map может быть вызван потом(промис) или только в определенном случае

Gleb
21.06.2017
14:33:53
ммм

да

я кажется понял

Да действительно въезжаю, спасибо большое!)

Дмитрий
21.06.2017
14:36:57
Наверняка многие прочли most adequate guide js и там глава с композициями перетекает в монады, и то и то понятно, тем более с примерами близкими к жизни, но я как понял монады это какой то частный случай композиции ведь? я что Maybe что Either могу не менее декларативно описать compos'ами, разве нет?
const filterFarmer = human => human.occupation === 'farmer' const users = { 230: { name: 'bob', occupation: 'farmer' }, 231: { name: 'jerry', occupation: 'doctor' }, 232: { name: 'frank', occupation: 'teacher' } } const readField = prop => data => data[prop] const toUpperCase = (text) => text.toUpperCase() const readName = (id) => Maybe(users) .map(readField(id)) .filter(filterFarmer) .map(readField('name')) .map(toUpperCase) readName(231) // => { type: 'Nothing' } readName(230) // => { type: 'Just', value: 'BOB' } readName(NaN) // => { type: 'Nothing' }

Gleb
21.06.2017
14:37:15
Вот и я о том же!

Дмитрий
21.06.2017
14:37:25
Декларативно описываем что нам нужно, а все проверки на корректность запросов скрыты внутри

Aleh
21.06.2017
14:37:56
readName это maybeName?

Дмитрий
21.06.2017
14:38:10
Пардон) Да

Aleh
21.06.2017
14:38:16
?

? animufag ?
21.06.2017
14:41:40
Вот и я о том же!
Вообще не понимаю кто что для себя извлёк. У тебя есть Just 1. как ты композом прибавишь единицу?

Google
? animufag ?
21.06.2017
14:42:26
(ну да это про функторы, но выше в примере бинда тоже не было)

Aleh
21.06.2017
14:43:08
readField ж bind

ну в смысле a -> Maybe b

Denis
21.06.2017
14:44:12
Скажите, в чем принципиальная разница между вычислениями при использовании монад и кучи compose'ов?
в том что это чистые вычисления с грязным контекстом, а просто компоуз это чистые вычисления. Есть composeK или композиция Клейсли для грязных вычислений (с эффектом) ну или же стрелок клейсли вида Monad m => a -> m b

Gleb
21.06.2017
14:45:18
А можно ситуацию когда мне выбирать между двумя вычислениями в сторону грязных нужно пожалуйста?

Denis
21.06.2017
14:45:59
есть категория чистых вычислений, а есть категория Клейсли и вот в чистых объекты - типы, морфизмы чистые функции. А в категории Клейсли - объекты функторы, морфизмы - натуральные преобразования

еще монады задают порядок композиции эффектов (тут мы можем управлять эффектами в отличии от аппликативой, где эффект заложен в самом контейнере)

думаю всем понятно

Aleh
21.06.2017
14:48:04
Denis
21.06.2017
14:48:28
ну вообще функторы это 2-категории

Дмитрий
21.06.2017
14:48:37
readField ж bind
Даже скорее .filter Maybe(users) .map(readField(id)) .chain( val => filterFarmer(val) ? Just(val) : Nothing())

Дмитрий
21.06.2017
14:48:51
Это если развернуть так выглядит

Denis
21.06.2017
14:49:06
ну или cata :D

Дмитрий
21.06.2017
14:49:28
Кстати да, так тоже можно

Denis
21.06.2017
14:49:35
или же по нашему reduce/fold

ведь монадку можно почти всегда написать через reduce/fold

для Maybe это maybe метод

это вам не вводные про тройку борзых писать

Google
Gleb
21.06.2017
14:52:22
и там и там порядок ведь

Denis
21.06.2017
14:52:32
c эффектамм

то есть компоузить стрелки вида Monad m => a -> m b

в обычной композиции мы юзаем стрелки вида a -> b

а тут контекст с эффектом (я про Клейсли)

Gleb
21.06.2017
14:54:47
Maybe(users) .map(readField(id)) .chain( val => filterFarmer(val) ? Just(val) : Nothing()) Как в примере выше?

Denis
21.06.2017
14:54:58
да

тут эффект (может бы а может нет)

Gleb
21.06.2017
14:55:11
Блин ну а что я понял

Admin
ERROR: S client not available

Denis
21.06.2017
14:55:20
частичные вычисления или результат с неудачей

если удача, то как обычная Identity монадка иначе эффект

и как ты можешь заметить ты сам можешь контролировать когда упасть

это и есть явное задание пайплайна с эффектами

монада это моноид в категории эндофункторов

Gleb
21.06.2017
14:57:19
Такой тогда вопрос, я могу Rx назвать своего рода монадами?

Denis
21.06.2017
14:57:36
да

Gleb
21.06.2017
14:57:48
Отлично, тогда вообще все понятно

Denis
21.06.2017
14:58:11
ибо Rx родился из Continuation Monad (мать всех монад)

Дмитрий
21.06.2017
14:58:22
Из реактивного расово фп-верным я бы больше посчитал most)

Google
Denis
21.06.2017
14:58:35
эм

Дмитрий
21.06.2017
14:58:52
Ну он просто по спеке FL

Denis
21.06.2017
14:58:59
Эрик Мейер и его пейпер скажут другое)

идея - это все CPS

и все из Continuation monad

Aleh
21.06.2017
14:59:56
Denis
21.06.2017
15:00:17
а еще это дуализм к итератору

пулл вс пуш

уже не помню ссылку

но вот видяха где они с Брайаном обсуждают

https://www.youtube.com/watch?v=looJcaeboBY

Aleh
21.06.2017
15:01:54
пасиб

Denis
21.06.2017
15:02:08
а потом Брайан навалит про монадки)

https://www.youtube.com/watch?v=ZhuHCtR3xq8

ну и где-то там с ними тусит Cаймон Пейтон Джонс

кстати Эрик тоже проектировал хаскелл

Aleh
21.06.2017
15:03:06
ага, на википедии есть про это фраза)

Denis
21.06.2017
15:03:32
я просто их фото видел всей командой, когда они были молоды)

а вот тут почему все что есть в js не может быть frp ftp://progftp.vub.ac.be/tech_report/2012/vub-soft-tr-12-13.pdf

занятный пейпер

? animufag ?
21.06.2017
15:20:17
Gleb можешь как-нибудь подытожить ответ на вопрос "в чем принципиальная разница между вычислениями при использовании монад и кучи compose'ов?"

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