
Vasily
02.06.2018
20:14:44

Ivan
02.06.2018
20:15:25
Пнрнвернув монадные функции, ты получаешься рядом с данными. Монады о коде, а комонады, похоже, о данных

Roman
02.06.2018
20:16:18

Ivan
02.06.2018
20:16:40
Пока сам не разобрался, хотя вторую неделю грызу

Google

Roman
02.06.2018
20:17:15

Vasily
02.06.2018
20:18:17
https://www.google.ru/amp/s/bartoszmilewski.com/2017/01/02/comonads/amp/

Ivan
02.06.2018
20:19:20
Мне почему то кажется, что сама абстракция глубже. Ну как с монадами, которые везде

Vasily
02.06.2018
20:20:11
Гляну внимательнее, тема в целом интересная

Roman
02.06.2018
20:20:15
С помощью комбинатора recover мы можем вернуть всю структуру данных в память:
recover back_to_RAM scattered
Или и вовсе пройтись с эффектом по разбросанной структурой данных, по ходу дела восстанавливая сегменты в памяти и применяя к ним такую же функцию как и к значениям в памяти.
Можно многозадачность так реализовывать на различных процессах. Или транзакционность.
Крутая штука.

Ivan
02.06.2018
20:21:10
Сам прибалдел. Но пока не понял ?

Vasily
02.06.2018
20:23:11
https://gist.github.com/hodzanassredin/fd6650aee7557ec85d46
http://tomasp.net/blog/2014/why-coeffects-matter/
Как я понял ,к каждому значению цепляется контекст его начитки/сохранения
И да,из этого можно сделать слово на букву b
Хорошо зайдет с новыми тп из классов - для сериализаторов

Ivan
02.06.2018
20:32:07
Ну ведь интересно же, черт возьми

Google

Vasily
02.06.2018
20:32:30
Безусловно

Ivan
02.06.2018
20:32:35
Еще как зайдет, если понять

Vasily
02.06.2018
20:33:40
Ну как я понял,ты каждый тип данных заворачиваешь в структуру,которая содержит контекст хранения данных
Причем контекста должно быть достаточно для записи и чтения

Ivan
02.06.2018
20:35:08
Это о кофри монадах. А вот сами команады более интересны мне пока. Грубо говоря, вывернутый мир
Мы же хорошо знаем как монада и моноид сочетаются. Но как сочетаются команада и моноид? А команада и комоноид?

Вячеслав
02.06.2018
20:54:08

Ivan
02.06.2018
21:37:44
ДДД - это хорошое начало. Но по мне сейчас оно уходит. Вот чутье подсказывает, что домен уступает функциональному действию
Чем дальше, тем больше понимаю, что язык выражает сознание. Разница в F# и C# именно в этом ?
Так что - я пишу на F# надо сделать осознанием, что ты работаешь совсем на другом уровне, чем на C#, мозг другой - ты я вно круче, донести бы до ichar.

Pavel
03.06.2018
05:19:11

Evgeniy
03.06.2018
05:27:06

Bonart
03.06.2018
07:50:47
DDD в чистом виде кладет на SRP, отчего и страдает. Я в свое время на тренинге по DDD для каждой конкретной задачи предлагал лучшее решение и оно каждый раз было для DDD... слишком функциональным

Вячеслав
03.06.2018
07:54:04

Bonart
03.06.2018
07:56:24
Это из-за включений бизнес-операций в доменные объекты. Корень агрегации уже совсем патология
Сам по себе я не функциональщик ни разу - у DDD проблемы уже с точки зрения ООП.

Ivan
03.06.2018
08:03:31
У DDD проблем нет. Проблемы с пониманием DDD. Так же как и OOП совсем никакого отношения к текущей реализации в языках не имеет.

Mariia
03.06.2018
13:30:28
А ни у кого нет проблем с F# interactive в райдере? не могу его заставить работать, просто не стартует новую сессию
хотя при этом c# iteractive работает

Friedrich
03.06.2018
13:34:00

Google

Mariia
03.06.2018
13:34:49
+ только что обновила райдер но все равно тоже самое

Friedrich
03.06.2018
13:35:44
В евент логе ничо интересного нету?

Mariia
03.06.2018
13:39:18
неа, чисто все

Friedrich
03.06.2018
13:40:14
Ну мб тогда через фидбэк репортни. Там была кнопка чтоб приложить внутренние логи.

Oleg
03.06.2018
13:53:45

Andrew
03.06.2018
14:07:46
Пробовал ли кто-нибудть FAKE5? У меня новый синтаксис #r "paket: groupref CI" вызывает ошибку Assembly reference 'paket: groupref CI' was not found or is invalid.

Oleg
03.06.2018
14:15:54

Andrew
03.06.2018
14:18:00
хм. каким-то образом у меня установился FAKE - F# Make "4.63.2" вместо 5.
вообще я думал этот новый синтаксис #r относится не к fake, а к fsi.

Oleg
03.06.2018
14:18:54
Нет, в fake5 внутри какой-то матёрый препроцессор скрипта встроен
И Пакет у него встроенный, монстр какой-то

Andrew
03.06.2018
14:19:41
спасибо.

Bonart
03.06.2018
14:19:47

Вячеслав
03.06.2018
16:14:52

Evgeniy
03.06.2018
16:32:32
Привет.

Igor
03.06.2018
16:32:50

Roman
03.06.2018
17:26:08

Вячеслав
03.06.2018
17:38:24
единственное пока не удобно то что персистанс уровень я хотел делать на C# и MongoDB чтобы сохранить корректно DU как поле у рекорда приходится делать отдельную модель с явным кастом. Возможно надо капнуть глубже )

Mariia
03.06.2018
19:28:35
Нубский вопрос
а насколько MailboxProcessor сейчас актуален?

Google

Vasily
03.06.2018
19:30:17
Вопрос неясен

Mariia
03.06.2018
19:31:00
https://fsharpforfunandprofit.com/posts/concurrency-actor-model/
просто сейчас нашла вот такую статью и она кажется несколько устаревшей
типа для этих целей лучше взять акку наверное, нет?

Vasily
03.06.2018
19:34:52
Ну акка будет из пушки по воробьям скорее

Klei
03.06.2018
19:35:07
Akka тащит за собой гору проблем. Если тебе хватит для решения задачи Mailboxprocessor, лучше юзай его.
Для примеров в статье, MP более чем адекватен.

Vasily
03.06.2018
19:36:32
Я лично использую его для хранения состояния и для синхронизации доступа к ресурсам

Evgeniy
04.06.2018
05:03:38
https://twitter.com/zaid_ajaj/status/1003344009593610240

Sergey
04.06.2018
05:14:30
https://twitter.com/verge/status/1003370586410815488
GitHub старый новый дом

Roman
04.06.2018
05:19:54

Vasily
04.06.2018
05:25:06

Evgeniy
04.06.2018
05:38:55

Vasily
04.06.2018
06:13:07

Evgeniy
04.06.2018
06:13:27

Vasily
04.06.2018
06:14:07
Надо в коде глянуть

Evgeniy
04.06.2018
06:14:26
https://github.com/Zaid-Ajaj/LiteDB.FSharp/blob/master/LiteDB.FSharp/Query.fs

Vasily
04.06.2018
06:15:19
А,он бсоновские запросы строит

Google

Vasily
04.06.2018
06:15:41
Тоже вариант
Я,кстати, так и не понял в итоге, как в litedb ключом сделать енам
Поэтому пришлось пойти по другому пути и в апи запросов передавать предикат
Что не очень удобно

Evgeniy
04.06.2018
08:14:49
TIL
https://github.com/fsharp/fslang-design/blob/master/FSharp-4.0/ExtensionPropertyInitializersDesignAndSpec.md
Привет.

Evgeniy
04.06.2018
08:44:03
привет
чем yield! от yield отличается? вернее, что такое yield! вообще?

Andrew
04.06.2018
10:10:55
Это ж вроде для computation expressions

Evgeniy
04.06.2018
10:12:29
https://theburningmonk.com/2011/09/fsharp-yield-vs-yield/

Evgeniy
04.06.2018
10:14:58
спасиб

Vasily
04.06.2018
13:16:13
Коллеги, есть теоретический вопрос
Есть два состояния, условно ok и none
Есть мейлбокс, который возвращает текущее состояние
У ок долгая инициализация
Как мне организовать код, чтобы, пока ок инициализируется, возвращалось none?