
Vlad
15.06.2018
12:06:13
let ofObj value = match value with null -> None | _ -> Some value

Ayrat
15.06.2018
12:06:22
я не уверен что этот гард так уж полезен, я обмазываю все вызовы Newtonsoft.Json так:
maybe {
let! id = jTok.SelectToken("object.values[0].id") |> Option.ofObj
}
ну у меня понятно есть инлайн функция вида
let inline selectToken : JToken -> JToken option

Dmitry
15.06.2018
13:24:18
А как называется подход, когда всё IO делается либо в начале (чтение), либо в самом конце процесса, а внутри всё из чистых функций?

Google

Dmitry
15.06.2018
13:24:26
Это же не луковичная архитектура?

Roman
15.06.2018
13:27:24
А не, совсем. Там только чтение вначале

Mikhail
15.06.2018
14:14:22

Дед Пегас
15.06.2018
14:20:53
Я бы с таким ником точно банил

Ayrat
15.06.2018
14:26:05
Его брат близнец?
Никто не знает есть ли стандартная функция на такое
|> function
| Some (x, y) -> Some x, Some y
| None -> None, None
преобразовать опшн тупля в тупль опшнов

Vasily
15.06.2018
15:47:12
Ну стандартной нет,но option.bind должен справиться

Ayrat
15.06.2018
15:48:05
Ну я ж не Option возвращаю, как тут bind поможет?

Vasily
15.06.2018
15:54:30
Да, согласен
Я невнимателен

Roman
15.06.2018
15:54:49
Вобще интересно.

Google

Klei
15.06.2018
16:06:58

Ayrat
15.06.2018
16:09:17
Да, это я прогнал

Roman
15.06.2018
16:10:03
Он есть, но api другой, насколько я помню

Ayrat
15.06.2018
16:10:18
https://github.com/Horusiath/Akkling/issues/68
Честно говоря дичЪ

Klei
15.06.2018
16:43:40

Evgeniy
15.06.2018
17:44:25
@Kleidemos Шаришь в Akkling эффектах?

Klei
15.06.2018
20:24:09

Evgeniy
15.06.2018
20:24:16
Я думаю, как жить без mailbox.Defer
Нужно как-то правильно эффекты хендлить. Как?

Klei
15.06.2018
20:24:45
Я ловлю Stop. Эффекты тут не причем.

Evgeniy
15.06.2018
20:25:00

Klei
15.06.2018
20:25:41
Stop — это..?
Это LifecycleEvent. В этом случае твой актор теряет типизацию.

Evgeniy
15.06.2018
20:25:49

Klei
15.06.2018
20:27:39
Иначе никак.
В теории можно посмотреть context.UntypedContext.Defer.... Может есть что.

Evgeniy
15.06.2018
20:34:00
Иначе никак.
Это довольно странно. Раньше были Behavior<'T>, которые позволяли хендлить системные сообщения.
Потом их заменили на эффекты.

Klei
15.06.2018
20:34:47

Google

Evgeniy
15.06.2018
20:34:52
Или это был только прототип... ?

Klei
15.06.2018
20:36:25
Вообще если ты создашь Props<int>, то ты не получишь сообщения LifecycleEvent. Там фильтр установлен такой, что часть сообщений даже не высылается.

Evgeniy
15.06.2018
20:39:53
Ок.
@VagifAbilov ^

Roman
15.06.2018
22:04:41

Klei
15.06.2018
22:07:55
По моему достаточно удобная штука получилась.

Evgeniy
16.06.2018
06:09:37
Довольно странно, конечно. Итого есть два места без типизации:
- mailbox.Sender(), но это лечится передачей типизированной ссылки на отправителя в сообщении
- обработка сообщений системы
Ладно, я Unit-1 почти закончил. Надо бы порядок навести, наприме, избавиться от actor { ... } в коде.
Мне почему-то интерфейс через CE здесь не нравится. :)

Сергей
16.06.2018
06:54:51
@gsomix

Anna
16.06.2018
07:04:01
закрой дверь, они на свет ползут ?

Klei
16.06.2018
07:04:01

Vagif
16.06.2018
08:11:28
Мне тоже не хватало Defer, давно ещё issue открыл, потом как-то выкрутился, уже не помню деталей. Бартош был сейчас в Осло на NDC, делал доклад по Streams с демо на Akkling. Я его спросил о будущем библиотеки, он сказал, что подумывает ещё раз радикально изменить API, чтобы получились настоящие типизированные акторы, без всех этих typed - untyped. Но когда, пока неизвестно.

Evgeniy
16.06.2018
08:11:58
Было бы круто.

Vagif
16.06.2018
08:13:23
Он хочет разделить обработку доменных сообщений и системных, чтобы последние не влияли на тип актора.

Evgeniy
16.06.2018
08:13:48

Vagif
16.06.2018
08:14:29
Когда я перешёл на акклинг, уже не было.

Evgeniy
16.06.2018
10:06:23
Привет.

Black
16.06.2018
10:10:09
прет

Google

Дед Пегас
16.06.2018
10:12:28
В бан


システム
16.06.2018
10:38:54
@neftedollar @gsomix @vshapenko @AnutaU
Hi there, a short update on questions:
1) Type providers parameterized by types - is being developed by only one person, so ETA - next major F# release after this person will be ready, but we are strongly encouraged to help;
2) SRTP fixes - ETA F# 5
3) Traits, type classes or something like that - when general architecture picture will be agreed with rest of .NET language architects, specifically Mads, ETA unknown, but maybe around C# 8.0;
4) Anonymous records - they are ready, but the reason why they are not in F# 4.5 - not enough feedbacks and tests from the community, ETA - F# 5.0;
5) Reason why there are no parameterized modules in F# in the same way as in OCaml - primarily because of possible community split like in Scala, when 50% use it, and another 50% don't use it, and missing of clear picture how to constraint such feature in a right way, but it could be added if there would be enough requests;
6) Task computational expression recognizable by the compiler - ETA F# 5.0;


Evgeniy
16.06.2018
12:35:34
@psdarr Thanks a lot!

システム
16.06.2018
12:36:36

Evgeniy
16.06.2018
12:41:01
https://sergeytihon.com/2018/06/16/f-weekly-24-2018-fable-conf-2018-26-27-october-berlin/
Рыба знаменитый. :)


Roman
16.06.2018
12:55:12
@neftedollar @gsomix @vshapenko @AnutaU
Hi there, a short update on questions:
1) Type providers parameterized by types - is being developed by only one person, so ETA - next major F# release after this person will be ready, but we are strongly encouraged to help;
2) SRTP fixes - ETA F# 5
3) Traits, type classes or something like that - when general architecture picture will be agreed with rest of .NET language architects, specifically Mads, ETA unknown, but maybe around C# 8.0;
4) Anonymous records - they are ready, but the reason why they are not in F# 4.5 - not enough feedbacks and tests from the community, ETA - F# 5.0;
5) Reason why there are no parameterized modules in F# in the same way as in OCaml - primarily because of possible community split like in Scala, when 50% use it, and another 50% don't use it, and missing of clear picture how to constraint such feature in a right way, but it could be added if there would be enough requests;
6) Task computational expression recognizable by the compiler - ETA F# 5.0;
thnx!
@gsomix для ocaml модулей у нас мне кажется достаточно человек, чтоб сделать "достаточно" requets


Evgeniy
16.06.2018
12:58:17

Nikolay
16.06.2018
18:59:26
Как yaml провайдеру объяснить, что поле может быть option?

Evgeniy
16.06.2018
19:14:19
Привет!

Artem
16.06.2018
19:14:27
https://marketplace.visualstudio.com/items?itemName=georgewfraser.fsharp-language-server
пробовал кто? работает?
@gsomix, помнишь там был нативный язык пони (даж чат был)?
его тут в одном чате сегодня даже вспоминали :D
//offtop mode off

Evgeniy
16.06.2018
19:15:29
fsharp-language-server -- очень молодой проект.

Google

Evgeniy
16.06.2018
19:19:39
@suddengunter У ионид много хороших фич, но если будет тормозить, рекомендую поковыряться в настройках.
Я себе, кажется, отключил линзы и анализаторы некоторые.

Artem
16.06.2018
19:22:15
значит ионид

Evgeniy
16.06.2018
19:23:48