
Evgeniy
04.08.2018
20:47:15
@angmarr Если я из init верну команду на загрузку данных из хранилища, это будет правильное решение?

Igor
04.08.2018
20:53:55
Вроде да

Evgeniy
04.08.2018
20:54:03
Отлично, спасибо.

Pavel
04.08.2018
22:21:03

Google

Friedrich
05.08.2018
02:42:13
Ребят, вопрос возможно здесь частый, но не в описании, не в пине не нашёл, извините(
В общем хочу переписать одну свою либу с вычислениями с C# на F#, в пользу лаконичного и более читабельного кода и интереса к ФП, как раз даже на работе разрешили из собственного интереса тимлида.
Смотрю примеры, читаю доку, но чувствую что одним синтаксисом здесь не обойдёшься и нужно понимать подход. На чисто интуитивном уровне я осознаю подход, но чувствую, что для полного просветления было бы неплохо почитать что-нибудь фундаментальное по ФП. Что можете посоветовать, мастхэв какой-нибудь?)
Почитай вот эту серию постов: http://blog.ploeh.dk/2017/10/04/from-design-patterns-to-category-theory/

Ruslan
05.08.2018
05:56:44

Vasily
05.08.2018
06:17:41

Evgeniy
05.08.2018
06:18:02

Vasily
05.08.2018
06:31:14
Что значит "прибитый"?
Ну если ты захочешь, например, пообщаться с базой, изменение займет больше времени, чем хочется

Evgeniy
05.08.2018
06:34:41
Что ж вы за архитектурные астронавты. :)

Vladimir
05.08.2018
06:36:27

Vasily
05.08.2018
06:36:35

Evgeniy
05.08.2018
06:50:12
Если я захочу пообщаться с базой, то буду делать это через сервер. А это совсем другая история.
Оверинжинирить сейчас смысла не вижу.

Friedrich
05.08.2018
08:00:03

Vladimir
05.08.2018
08:23:36
Ну, они интересные, концепции хорошо расписаны. Только не очень понятно что теперь с этим всем делать, так что практическая польза небольшая на мой взгляд

Google

Vladimir
05.08.2018
08:27:08
Не хватило вывода типа, вот я знаю что такое моноиды, семигруппы и магмы, теперь я могу — ....

Friedrich
05.08.2018
08:44:33

Evgeniy
05.08.2018
11:06:01

Klei
05.08.2018
11:35:45
Кто-нибудь знает, как в Akka/Akkkling из актора, который примет сообщение 'a и сдохнет, сделать Async<'a>?
Ну или из актора, который отправит одно сообщение и сдохнет.

Vasily
05.08.2018
12:31:27
Не получится так
Точнее, есть ask
Но он медленный

Vladimir
05.08.2018
15:41:57

Roman
06.08.2018
02:00:53

Evgeniy
06.08.2018
04:36:52
Привет?

Ayrat
06.08.2018
04:57:51

アレクセイ
06.08.2018
05:26:35
That TurtleProgram code you linked to was just an experiment -- I would not recommend using Free for real code at all.
Блин как раз недавно читал и думал: так вот как надо делать! А оно не так ?

Evgeniy
06.08.2018
05:29:29

Mikhail
06.08.2018
05:36:27
А как тогда лучше сделать DSL? Просто интерпретатор, без фри монады?

Evgeniy
06.08.2018
05:38:49

Vasily
06.08.2018
05:42:26

Google

Evgeniy
06.08.2018
05:43:23
Кто-то должен написать серию статей про идиоматичный F#. :)
Но это мелочи.

Doge
06.08.2018
06:16:26

Evgeniy
06.08.2018
06:17:43

Roman
06.08.2018
06:18:14

Doge
06.08.2018
06:19:13

Evgeniy
06.08.2018
06:19:43

Doge
06.08.2018
06:20:07

Bonart
06.08.2018
06:20:58

Roman
06.08.2018
06:21:02
еще каждый раз объяснять новому разработчику концепт фри монады)

Bonart
06.08.2018
06:21:13
Если, конечно, опровержение вообще существует ;)

Ayrat
06.08.2018
06:21:18

Evgeniy
06.08.2018
06:21:30

Bonart
06.08.2018
06:21:45

Ayrat
06.08.2018
06:22:36

Evgeniy
06.08.2018
06:22:48
И это тоже.
Для паттерна, что в других языках получается for free, в F# нужно придумывать целый рецепт.
http://blog.ploeh.dk/2017/08/07/f-free-monad-recipe/

Bonart
06.08.2018
06:22:52

Google

Evgeniy
06.08.2018
06:22:56
Мне не кажется, что это идиоматично и стоит использовать в F#.

Doge
06.08.2018
06:24:04

Bonart
06.08.2018
06:24:14
разверни мысль пожалуйста
Легкая поддерживаемость означает, что можно эффективно использовать широкие массы мидлов без понимания ими подкапотного механизма. С ООП именно это и произошло.

Ayrat
06.08.2018
06:24:46

Evgeniy
06.08.2018
06:24:56
Господа, идите во флудилку, пожалуйста.

Ayrat
06.08.2018
06:25:57

Doge
06.08.2018
06:26:05

Bonart
06.08.2018
06:27:19

Ayrat
06.08.2018
06:28:27

Doge
06.08.2018
06:30:32

Bonart
06.08.2018
06:32:13
Это не в скале язык сознательно делится на две части - для быдла и библитекарей?

Doge
06.08.2018
06:32:33
И современный идиоматичный ФП скала код ты без отключения части этих варнингов все равно не напишешь

Igor
06.08.2018
06:39:00

Doge
06.08.2018
06:40:11

Igor
06.08.2018
06:40:56
Ну такое себе способ, а потом у тебя эти фри по всей программе

Doge
06.08.2018
06:41:23
Да, это можно и явно сделать, но тогда достаточно много данных придется именно что явно по коду протаскивать туда-сюда
Что во многих случаях будет отвлекать от самой бизнес-логики

Vlad
06.08.2018
06:57:11

Google

Vladimir
06.08.2018
09:04:08
Что-то обновил TaskBuilder до 2.0 и поломался жираф, никто еще не столкнулся?
An unhandled exception has occurred while executing the request.
System.MissingMethodException: Method not found: 'TaskBuilder FSharp.Control.Tasks.ContextInsensitive.get_task()'.
at Giraffe.Middleware.Invoke@39-1.Invoke(FSharpOption`1 _arg1)
at FSharp.Control.Tasks.TaskBuilder.StepStateMachine`1.nextAwaitable() in D:\src\TaskBuilder\TaskBuilder.fs:line 38

Friedrich
06.08.2018
09:05:15
Мб обнови жираф тоже? Были проблемы, но их пофиксили же?

Vladimir
06.08.2018
09:05:49
жираф уже почти полгода без апдейтов =( на 1.2.0-rc работает
похоже потому, что taskbuilder вместо обычного апдейта поменял неймспейсы и какая-то старющая версия стала подтягиваться
Вообще говоря странный паттерн - поднять версию нейспейсов) хотите новую версию либы - переписывайте у себя код

Friedrich
06.08.2018
09:31:14
Человек старается сделать, чтоб ни у кого совместимость не поломалась, всё ок.
Ну, там был косяк с жирафом и это не ок, но мне казалось, что всё починили.

Vladimir
06.08.2018
09:41:53

Friedrich
06.08.2018
09:42:13
Да как так-то!
В 2.0 новый код просто вынесен в неймспейс.

Vladimir
06.08.2018
09:42:50
новый относительно чего?)
может относительно 1.0?
я в общем, захардкодил себе 1.2.0-rc пока, сейчас создам ишуй в жирафе, может кто возьмется фиксить