
Friedrich
17.09.2018
14:52:53
Я думаю, можно. Надо попробовать.

Vladimir
17.09.2018
14:53:06
ага, хочу чтобы мог вызывать BinaryDeserialize с любым типом из того что предлагает перегрузка

Friedrich
17.09.2018
14:53:14

Vlad
17.09.2018
14:53:26

Google

Vladimir
17.09.2018
14:53:59

Vlad
17.09.2018
14:55:16
если инлайн то ты ^Type писать должен

Александр
17.09.2018
14:56:12

Vasily
17.09.2018
14:56:35

Vladimir
17.09.2018
14:57:42

Evgeniy
17.09.2018
14:59:39
@Lanayx Стандартный трюк - через вспомогательный тип и операторы.

Vladimir
17.09.2018
15:01:43

Roman
17.09.2018
15:02:43
а что за ошибка подчеркнута?

Vladimir
17.09.2018
15:03:41
что or там нельзя писать
интересно что and там разрешается

Roman
17.09.2018
15:04:42
интересно что and там разрешается
let inline replace_instance< ^a, ^b, ^c, ^d when (^a or ^c): (static member replace: ^b * ^c -> ^d)> (a: ^b, f: ^c) =
((^a or ^c): (static member replace: ^b * ^c -> ^d) (a, f))

Vladimir
17.09.2018
15:05:17
в доку я тоже уже залез) но там не то немноо

Google

Vladimir
17.09.2018
15:05:29

Evgeniy
17.09.2018
15:05:40

Vladimir
17.09.2018
15:05:45
пасиб

Vasily
17.09.2018
15:07:42
or низя, да
Мы тут периодически мусолим тему с анонимными DU
Вот or - это к этому

Grigoriy
17.09.2018
16:24:48
Привет, Василий!

Vasily
17.09.2018
16:29:49
Вечно вы, Григорий, с ботами здороваетесь

Evgeniy
17.09.2018
16:30:10
@Lanayx Есть стандартный паттерн, но для него нужно бойлерплейт писать.
http://bit.ly/sharplab-2xiB2Dr

Grigoriy
17.09.2018
16:30:27

Evgeniy
17.09.2018
16:34:29
@Lanayx Ну, ты, наверное, видел это в TaskBuilder, только там еще приоритеты были.
Я не знаю, как это иначе можно решить с помощью SRTP.

Vladimir
17.09.2018
17:39:59
Пасиб, надо это сохранить куда-нибудь

Grigoriy
17.09.2018
18:04:50
Привет, Олег!

Vladimir
17.09.2018
18:05:27
Правда выглядит так, что проще руками все перегрузки прописать для своего класса

Evgeniy
17.09.2018
18:12:59

Vladimir
17.09.2018
18:14:57
Задача вызывать свою обёртку десериализатора, чтобы не привязываться к конкретной имплементации, в то же время не потерять перегрузки

Evgeniy
17.09.2018
18:16:21
Ок. Другой вариант — передавать десериализатор через тип-параметр, но это синтаксически некрасиво. :(
Ладно. Доброй ночи.

Vladimir
17.09.2018
18:20:31
Доброй!

Google

Evgeniy
17.09.2018
18:23:35
Ну, да, такое себе. Зато обобщенно. :)
let inline BinaryDeserializeGeneric< ^Deserializer, ^In, ^Out when ^Deserializer : (static member Deserialize : ^In -> ^Out)> (input: ^In) : ^Out =
(^Deserializer : (static member Deserialize : ^In -> ^Out) (input))
let bar : obj = BinaryDeserializeGeneric<MessagePackSerializer, _, _> bytes


Roman
18.09.2018
05:26:53
Читаю https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/understanding-fsharp-expressions.html
там в конце есть такой пример
// create a clone of if-then-else that accepts functions rather than simple values
let test b t f = if b then t() else f()
// call it with two different functions
test true (fun () -> printfn "true") (fun () -> printfn "false")
и подпись
The problem with this is that now the "true" function might be evaluated twice by mistake, when we only wanted to evaluate it once!
Как это первая лямбда может быть вызвана дважды ?
и дальше советуется использовать lazy
// create a clone of if-then-else with no restrictions...
let test b t f = if b then t else f
// ...but call it with lazy values
let f = test true (lazy (printfn "true")) (lazy (printfn "false"))
или я путаю eval и call ? ?

Vladimir
18.09.2018
07:21:35

Roman
18.09.2018
07:22:40

Vlad
18.09.2018
09:08:15
@fvnever
System.IO.FileLoadException: Could not load file or assembly 'FSharp.Core, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Could not find or load a specific file. (Exception from HRESULT: 0x80131621) ---> System.IO.FileLoadException: Could not load file or assembly 'FSharp.Core, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
не знаешь в чем бага флюент мигратора?

Vasily
18.09.2018
09:19:26
Ну, похоже, FSharp.Core не тот

Friedrich
18.09.2018
09:39:02
Они даже специально добавляли референс на FSharp.Core зачем-то.
Но, кажись, это добавило ещё больше проблем, чем решило :)

Vasily
18.09.2018
09:39:34
С фиксированной версией добавляли?

Friedrich
18.09.2018
09:39:42
https://github.com/fluentmigrator/fluentmigrator/issues/883

Vlad
18.09.2018
09:40:01
Мб там заработает

Friedrich
18.09.2018
09:40:43

Vlad
18.09.2018
09:40:49

Friedrich
18.09.2018
09:40:57
В стародавние времена я его лечил тем, что добавлял референс.
Но щас многое поменялось уже...

Google

Vasily
18.09.2018
09:41:45
Попробуйте из нугета пакет поставить

Vlad
18.09.2018
09:46:01
слава коммунизму, миграция прошла
services.AddFluentMigratorCore()
.ConfigureRunner(
fun run ->
let assembly = typeof<CreateTablesMigration>.Assembly
run.AddPostgres().WithGlobalConnectionString(connectionString).ScanIn(assembly) |> ignore)
|> ignore
и
let migrateUp() =
use serviceScope = app.ApplicationServices.CreateScope()
let runner = serviceScope.ServiceProvider.GetRequiredService<IMigrationRunner>()
runner.MigrateUp()
migrateUp()
примерно так

Ulan
18.09.2018
10:54:53
Здравствуйте
Для чего нужен фи шарп ?

Friedrich
18.09.2018
10:55:38
Чтобы на нём писать код!

Vasily
18.09.2018
10:55:44
Философский вопрос

Andrew
18.09.2018
10:56:05
Фи-шарп :D

Pavel
18.09.2018
10:58:24
Ох уж эти понацейщики: аджаил, проектирование (патерны, диаграммы классов, логическая модель бд), тдд, функциональщина
Ничего из этого не работает
А универе говорили, что работает
Обманули

Pavel
18.09.2018
11:12:21
че у тебя там в функциональщине не работает то?

Pavel
18.09.2018
11:13:01
https://github.com/LykkeCity/
Низя юзать фи-шарп
Он плохо совместим с нашими месными либами
Да и просто нельзя

Pavel
18.09.2018
11:14:36
ну так лапки ваши виноваты. он то тут причем. а фунциональщины и в с# выше крыши

Google

Pavel
18.09.2018
11:14:55

Ayrat
18.09.2018
11:15:02

Pavel
18.09.2018
11:15:33

Ayrat
18.09.2018
11:15:47

Pavel
18.09.2018
11:15:57
И тем и тем

Ayrat
18.09.2018
11:16:24
Доволен. Говорит по началу жопа горела

Pavel
18.09.2018
11:16:44
Ну вот как бы, я не про-то
Да, я тоже делаю неизменяеммые классы
И т.д.
Но от фи-шарпа мне нужна только система типо и сравнение с образцом
А про всякую лямбда-муть я знать не хочу

Pavel
18.09.2018
11:19:39
и. проблема то где?