Size: a a a

2020 June 09

VK

Vladislav Khapin in F# Chat
У нас наверно нет рекордов с конструкторами
источник

VS

Vladimir Shchur in F# Chat
Shub Niggurath
у классов засада: нет синтаксиса модификации как у рекордов
я как раз недавно в пульсаре с этим столкнулся и костылить пришлось) https://github.com/fsharplang-ru/pulsar-client-dotnet/blob/develop/src/Pulsar.Client/Common/DTO.fs#L257-L264
источник

VS

Vladimir Shchur in F# Chat
поэтому через классы почти всегда можно нужной гибкости добиться, хоть и подкостылить
источник

PD

Prunkles Dreemurr in F# Chat
И приходится соглашаться на такие страшные вещи, только ради того, чтобы запретить инстанцировать вне сборки?
источник

VS

Vladimir Shchur in F# Chat
там главная проблема в getValue функции, ее неоткуда взять для инстанцирования вне сборки. Я изначально планировал написать
member this.GetValue = getValue
но тогда из сишарпа это очень плохо выглядит :(
источник

VS

Vladimir Shchur in F# Chat
Вопрос любителям асинксек) Почему такая фигня происходит?
https://pastebin.com/0p7zbV32
источник

VS

Vladimir Shchur in F# Chat
т.е. почему второй асинксек каждую секунду результат отдает?
источник

VK

Vladislav Khapin in F# Chat
очень странные прямые вызовы енумератора
источник

I

Igor in F# Chat
Vladimir Shchur
т.е. почему второй асинксек каждую секунду результат отдает?
откуда такой вывод? может это первый каждые 2 сек))
источник

VS

Vladimir Shchur in F# Chat
Vladislav Khapin
очень странные прямые вызовы енумератора
что с ними не так?
источник

VS

Vladimir Shchur in F# Chat
Igor
откуда такой вывод? может это первый каждые 2 сек))
я же этот код запускаю и смотрю как выполняется, можешь тоже запустить)
источник

VS

Vladimir Shchur in F# Chat
Vladislav Khapin
очень странные прямые вызовы енумератора
а ты был прав) фиксится вот так
источник

SN

Shub Niggurath in F# Chat
Roman
какие-то у вас неправильные рекорды. У нас дайбох 5% таких наберется в скотобазе, и то не факт
других не завезли. у нас контракты с внешними командами довольно развесистые, если б в рекордах было до 5 полей, то конечно пофиг, а вот на 10 уже тоскливо делается
источник

VS

Vladimir Shchur in F# Chat
В общем с асинксеком вопрос почему возник - у меня такая задача, есть родительский консьюмер, который собирает консьюмы дочерних консьюмеров в один асинксек и делает MoveNext() на каждом свое ресиве. И все было хорошо, но мне нужно поддерживать динамическое добавление консьюмеров, я думал сделать просто merge к существующему стриму, но что-то это не работает нормально похоже из-за того что нужно заново энумератор пересоздавать ( Мб есть идеи как решить проблему?
источник

SN

Shub Niggurath in F# Chat
this.WithData data и member this.WithProperties properties  можно в один метод объединить, с опциональными параметрами. this.WithKey (key, hasBase64EncodedKey) уже сложнее, так как они либо оба должны быть, либо оба отсутствовать. но вроде все еще можно. но в принципе идея ничего так, мне тоже нужно всего пару полей обновлять
источник

SN

Shub Niggurath in F# Chat
Vladimir Shchur
В общем с асинксеком вопрос почему возник - у меня такая задача, есть родительский консьюмер, который собирает консьюмы дочерних консьюмеров в один асинксек и делает MoveNext() на каждом свое ресиве. И все было хорошо, но мне нужно поддерживать динамическое добавление консьюмеров, я думал сделать просто merge к существующему стриму, но что-то это не работает нормально похоже из-за того что нужно заново энумератор пересоздавать ( Мб есть идеи как решить проблему?
AsyncSeq.merge non-deterministically merges two async sequences into one. It is non-deterministic in the sense that the resulting sequence emits elements whenever either input sequence emits a value. Since it isn't always known which will emit a value first, if at all, the operation is non-deterministic. This
источник

SN

Shub Niggurath in F# Chat
насколько я это понимаю, оно не должно работать как ты хотел
источник

VS

Vladimir Shchur in F# Chat
эта дока не про то) то что нетерминированно это ок, оно отрабатывает больше раз чем я ожидаю
источник

АВ

Андрей Вилинский... in F# Chat
Vladimir Shchur
Вопрос любителям асинксек) Почему такая фигня происходит?
https://pastebin.com/0p7zbV32
да, похоже тебе надо combineLatest или хз как там оно точно называется
и да энумератор это структура, получаешь разные на каждый вызов
источник

АВ

Андрей Вилинский... in F# Chat
Vladimir Shchur
там главная проблема в getValue функции, ее неоткуда взять для инстанцирования вне сборки. Я изначально планировал написать
member this.GetValue = getValue
но тогда из сишарпа это очень плохо выглядит :(
а если так? member this.GetValue = getValue() получишь пропертю с геттером и ок
источник