
Aminion
11.03.2018
13:34:16
Ну как бы фп подразумевает определение логики в типах
Это как монада эйзер и кидание ошибки

Evgeniy
11.03.2018
13:36:32
Наверное, в общем случае нужны зависимые типы.

Google

Igor
11.03.2018
13:36:59

Friedrich
11.03.2018
13:37:06

Ivan
11.03.2018
13:37:15
Безопасный мап - рекорд

Friedrich
11.03.2018
13:37:36
Давайте так: когда кладёшь элемент в словарь или получаешь его оттуда — получаешь некий эвиденс из этого словаря.

Aminion
11.03.2018
13:37:40

Friedrich
11.03.2018
13:38:09
И потом можно либо получить из словаря по эвиденсу (с гарантией возврата значения), либо по ключу (без гарантии).
Хотя, блин, тогда можно перепутать эвиденсы в разных словарях. Ок, я сдаюсь.

Roman
11.03.2018
13:42:43
Ребята, проясните вопрос. Доступ к словарю по ключу, по хорошему, должен возвращать опциональный тип. Но, очевидно, иногда логика алгоритма, подразумевает, что элемент будет там, опциональность не является частью логики. Как это разруливается, с точки зрения тру ФП. Может ли компилятор предиктить такие случаи, и давать "небезопасный доступ"? Может завтипы?
Сейчас в map есть как "дай тип и свелись с эксепшеном если его нет" так и "верни плз опциональнай тип для этого ключа" вместе с option.deafult (или как там это пишется) все отлично работает

Aminion
11.03.2018
13:43:41
Ну, это понятно, но эксепшн это уже рантайм

Roman
11.03.2018
13:45:53
Ну, это понятно, но эксепшн это уже рантайм
Да поэтому верни опциональнай тип и прогнать потом этот опциональный тип через default (fun (x: 'a option) (defaultVal:'a) -> match x with | Some c -> c | _ -> defaultVal) обычный вариант
Lambda Factory
http://lambdafactory.io/

Evgeniy
11.03.2018
18:42:14
https://twitter.com/k_cieslak/status/972889376337383424
Непонятно, возьмёт ли он кого-то не из Польши. :)

Google

Most
11.03.2018
18:45:58
удаленка же, не?)

Roman
11.03.2018
18:47:03
Обучают?
был вопрос в соседнем чате

Evgeniy
11.03.2018
19:14:50
Я к тому, что, ну, почему на польском-то? :)

Most
11.03.2018
19:24:17
а, понял) туплю под вечер, пардон :)

Kirill
11.03.2018
19:40:28
может есть кто с западной украины и достаточно понимает и русский и польский

Dmitriy
11.03.2018
19:48:42
Ну так там все просто) насколько я понимаю, надо мидл, срочно, гибкий график
Аутсорс
Удаленка

Kirill
11.03.2018
19:51:00
это понятно, но не весь польский такой

Evgeniy
11.03.2018
19:51:12
Я к тому, что, ну, почему на польском-то? :)
Можно и на английском было написать.
Ну, ладно.
Интересно, насколько в Польше большое F# сообщество. Вот в Чехии, например, оно довольно приличное.

Dmitriy
11.03.2018
19:55:07
У поляков раньше ещё скала в почёте была

Kirill
11.03.2018
19:55:15

Evgeniy
11.03.2018
19:55:46
Ок.
https://twitter.com/Horusiath/status/972967975241371648

Roman
12.03.2018
04:42:33

Google

Klei
12.03.2018
04:51:45
Народ, а как давно рекорды научились переопределять ToString на sprintf "%A" this? Автоматом в ручную переопределял, а сейчас случайно заметил, что в WPF выводится вполне читабельное представление.

Evgeniy
12.03.2018
05:37:14
https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1b/FS-1022-override-ToString-for-discriminated-unions-and-records.md
Я думаю, надо Alex поставить звездочек.
https://github.com/AlexTroshkin/fsharp-dapper
Привет!

Roman
12.03.2018
08:04:40

Andrew
12.03.2018
08:07:00
выглядит круто
только вот это смущает:
(query |> QueryAsync <| connection)

Vasily
12.03.2018
08:07:49
Ну это он чтобы вторые скобочки не ставить :)

Roman
12.03.2018
08:08:09
Но можно подумать как сделать проще, если есть предложения всегда можно открыть issue

Vasily
12.03.2018
08:15:33
Ну я бы там переписал что-то типа
let run<'a> connection query =(QuerySingleAsync<'a> connection query)|>Async.RunSynchronously
Хотя это тоже некошерно
Можно еще упростить
Но лень открывать студию :)
let runAsync<'a> connection=QuerySingleAsync<'a> connection
let run <'a> query = query|>runAsync<'a>|>AsyncRunSynchronously
Вроде так

Roman
12.03.2018
11:17:55
Привет!
From @DependencyInjection to @DependencyRejection

Nick
12.03.2018
11:19:44
И вам не хворать :)

Roman
12.03.2018
11:22:05
Привет!

Google

Kirill
12.03.2018
11:22:27

Roman
12.03.2018
11:22:43

Kirill
12.03.2018
11:22:49
kek

Vladimir
12.03.2018
11:24:49
я например вот так делаю
let myQuery<'T> = Db.queryAsync<'T> connection
let myQuerySingle<'T> = Db.querySingleAsync<'T> connection
и потом юзаю myQuery, myQuerySingle

Evgeniy
12.03.2018
14:44:57
Положу здесь, чтобы потом не забыть #прочитать.
https://twitter.com/graydon_pub/status/973083923466002433

Roman
12.03.2018
15:09:29
Интересно, а через DU можн как-то выразить все возможные выборки
Типа
ОТ = . -> +∞
ДО = -∞ -> .
ОТ ДО = . -> .
ДО ОТ = -∞ -> . U . -> +∞

??
12.03.2018
16:23:34
Привет, кто-нибудь пишет под Android на F#?

Roman
12.03.2018
16:31:13

Igor
12.03.2018
16:33:46

??
12.03.2018
16:37:26

Igor
12.03.2018
16:40:08
- Потому что React(Native) более функциональный фреймворк, там давно есть реализация ELM/TEA архитектуры
- В RN есть “кросплатформенный UI” (android/ios) из коробки. Есть конечно XF, но там ооп-ный MVVM
- Можно разрабатывать в легкой VSCode (я вообще в ней все пишу) или Rider
- Теор, есть готовые rn-for-windows/rn-for-macos/rn-for-web (те можно больше платформ охватить)
Тестировал RNforWeb + F#/Fable - оно работало и в принципе если обернуть это в electron, то получится desktop-приложение.

??
12.03.2018
16:43:25

Roman
12.03.2018
16:44:14

Igor
12.03.2018
16:50:40
Привет, кто-нибудь пишет под Android на F#?
В принципе, можно на F# писать в Xamarin, но
- Только в VS/VSforMac (Rider не умеет в F# + Xamarin, VSCode и подавно)
- APK будет большой, тк будет требоваться netstandart + f# runtime-library (хотя можно с линкером поиграть)

??
12.03.2018
16:58:02
В принципе, можно на F# писать в Xamarin, но
- Только в VS/VSforMac (Rider не умеет в F# + Xamarin, VSCode и подавно)
- APK будет большой, тк будет требоваться netstandart + f# runtime-library (хотя можно с линкером поиграть)
Думаю пока продолжать на F#, так как бизнес логики очень много, а хотелось бы после легко перейти на iOS, жаль только, что Xamarin.Forms медленно развивается. На счет размера уже заметил, что прототип (на C#) весит довольно жирно, однако, за F# пока не заметил сильного утолщения, но и прототип еще не оброс. А можно ли на React Native подвязать C++ библиотеки и насколько это сложно, типа написать обёртку придётся?

Google

Igor
12.03.2018
17:04:07
Думаю пока продолжать на F#, так как бизнес логики очень много, а хотелось бы после легко перейти на iOS, жаль только, что Xamarin.Forms медленно развивается. На счет размера уже заметил, что прототип (на C#) весит довольно жирно, однако, за F# пока не заметил сильного утолщения, но и прототип еще не оброс. А можно ли на React Native подвязать C++ библиотеки и насколько это сложно, типа написать обёртку придётся?
Ну каждой платформе придется писать “бридж” (мост) c++ - java - f#(fable) / c++ - obj-c - f#(fable)
И кстати если у “продакшен”, то лучше все таки Xamarin ибо оно куда более стабильно/отлажено

Pavel
12.03.2018
17:35:53

??
12.03.2018
17:46:19

Pavel
12.03.2018
17:46:48

??
12.03.2018
17:47:31
что именно?
Забыть про формы, и сложность перехода на iOS

Pavel
12.03.2018
17:49:19
отсуствие форм приводит к разности в построении интерфейсов для андроида и иос. в результате шарится порядка 50-70% кода для обоих платформ
формы использовать невозможно т.к. раньше в приципе не было визуального дизайнера форм (его и сейчас вроде нет). а использование чистого ксамарина позволяет использовать родние дизайнеры интерфеса для андроида и иоса с возможностью построения максимально родного для этих платформ интерфейса
т.е. особой сложности как таковой нет. но писать для иос учитывая специфику интерфейса придется тоже.

??
12.03.2018
17:53:12
В основном нужна удобная навигационная модель, понятная привязка обновляемых свойств и такие контролы как листы, сетки, кнопки

Pavel
12.03.2018
17:55:20


??
12.03.2018
18:09:30
в формах слишком много ручника. и полное отсуствие визуальности. что xaml что без него.
Я ещё не настолько разобрался в Xamarin / Xamarin.Forms, но второе мне понятно и оно работает, и вроде как кросс платформенно.
Ремарка: до 2018 писал под Windows (в том числе UWP), пробую Android на вкус с января, F# около недели, до этого хороший опыт C# от их 4 редакции до сих 7.2, Visual C++ ну и скриптовые/запросные иногда по работе. Из проектов есть хороший опыт создания собственных форм со всеми анимациями и переходами, так что надеюсь знакомые по архитектуре Xamarin.Forms дадут сделать достаточно, в целом интерфейса на деле не так много требуется (много, но терпимо, чтобы не закопаться)
Основная пока проблема, это отставание Xamarin от Net Standard 2.0, невозможность отладки при связке F# dll с C# dll (exe), и поддержка Android только F# 4.0.0.1 (версии выше ругаются на BigInteger)

Pavel
12.03.2018
18:52:22

Sergey
12.03.2018
18:53:39
F# Weekly #10, 2018 – fsharpConf 2018 & tons of F# improvements in VS 15.6 https://sergeytihon.com/2018/03/12/f-weekly-10-2018-fsharpconf-2018-tons-of-f-improvements-in-vs-15-6/

Roman
12.03.2018
18:56:00

Roman
12.03.2018
18:56:30