@Fsharp_chat

Страница 588 из 772
Vasily
02.06.2018
20:14:44
Comonad вообще то совсем для меня неизвестная штука
Для меня тоже. Пока выглядит странновато

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

Roman
02.06.2018
20:16:18
Там по факту предлагается маскировать данные неким типом,который умеет их получать из разных источников, т.е. условный lazy
В целом удобно для различных веб приложений допустим. Можно логику хранения и доступа сильно разделить. Навскидку приходит пример что под капотом можно выбирать из кэша данные брать или из мастербд

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

Google
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
Книжку Влашина про DDD читаешь?
Да. Ддд сейчас интересующая тема, поэтому решил на примере этого изучать язык.

Ivan
02.06.2018
21:37:44
ДДД - это хорошое начало. Но по мне сейчас оно уходит. Вот чутье подсказывает, что домен уступает функциональному действию

Чем дальше, тем больше понимаю, что язык выражает сознание. Разница в F# и C# именно в этом ?

Так что - я пишу на F# надо сделать осознанием, что ты работаешь совсем на другом уровне, чем на C#, мозг другой - ты я вно круче, донести бы до ichar.

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

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
Ну мб тогда через фидбэк репортни. Там была кнопка чтоб приложить внутренние логи.

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

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
спасибо.

Вячеслав
03.06.2018
16:14:52
Там в конце книги есть про персистенс немного.
полистал внимательнее, нашел то что нужно там )

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

Igor
03.06.2018
16:32:50
Привет.
добрый вечер)

Вячеслав
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 старый новый дом

Vasily
04.06.2018
05:25:06
https://twitter.com/zaid_ajaj/status/1003344009593610240
Интересно, зачем ему там квотейшны

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
чем yield! от yield отличается? вернее, что такое yield! вообще?
Можешь рассматривать yield! в качестве IEnumerable.SelectMany.

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?

Страница 588 из 772