Hog
а это не экономия на спичках?
Romɑn
В коде? нет)
Hog
Content-encoding: gzip
Romɑn
мне как минимум леньдля каждого инта писать maybe { let! goals = getGoals () }
Romɑn
Не, я не ресурсы экономлю, я экономлю боль, которую я буду испытвать обходя огромные жсоны с кучей опшнов
Hog
o |> Option.map id |> Optiond.defaultValue 0
Romɑn
МИРИАДЫ ИХ!
Hog
окей-окей!
Vasily
Можно написать оператор (<?>)
Vasily
Ну и список опшном не имеет смысла делать
Hog
типа пустой и всё?
Vasily
Там обычно "пустой/непустой"
Vasily
Список опшнов тоже не очень имеет право на существование
Vasily
Ну т.е. я знаю кейсы, когда он появляется
Vasily
И где пригоден
Hog
Romɑn
https://gist.github.com/Neftedollar/f0c37a552565eb7951cffab30da20e7d
Ругайте
Vasily
Hog
Romɑn
Romɑn
Vasily
На 72 строчке какая-то хуерга
Vasily
В данном случае кортеж вырождается в список
Vasily
Т.к. все значения одного типа по идее
Romɑn
там - в Decoder
Hog
Vasily
Ну я еще раз говорю, что там написана хуйня
Romɑn
окай
Vasily
К сожалению
Vasily
Это бы имело смысл
Romɑn
поправлю, спасибо
Vasily
Если бы были разные типы в кортеже
Vasily
А поскольку типы одинаковые
Vasily
То не торт
Hog
Vasily
в массиве
Здесь по факту попытка десериализовать массив в тапл
Vasily
Урусай, я все видел
Hog
я тоже
Vasily
Поэтому, имхо, тут затык в том, какая структура данных используется в рекорде
Vasily
Если там кортеж - это очень странно
Vasily
Hog
Vasily
Равно как и Array
Romɑn
поэтому тут нельзя использовать лист или эррай вместо тапла
Vasily
Hog
obj array
Vasily
Нафиг там тапл?
Romɑn
Я хз
Romɑn
Можно удалить на самом деле
Vasily
Мне кажется, тебя бы спас unfold условный
Romɑn
Нафиг там тапл?
Ты достучался до моего сердца и я удалил таплы. Потому что они нужны уже для взаимодействия с самими объектами Decoder<'T>
типа
Decode.tuple2 mkDecoder<int> () mkDecoder<string>()
Romɑn
val it: Decoder<'T * 'A>
Vasily
Ох ты ж
Vasily
Ты мой гист внимательно смотрел?
Roman
@omgszer я че-то туплю. Как мне с нуля заимплементить через Async<'a> вызов, например, в базу?
Ayrat
Roman
синхронная имплементация)
Vasily
Vasily
async{
Vasily
return
Vasily
}
Vasily
ВСЕ
Ayrat
то есть там есть какой-то асинхронный апи? BeginRead, EndRead?
Ayrat
вот это вот все?
Ayrat
если она полностью синхронная до самого низа, то оберни в асинк и забей, просто будет засран тред в пуле
Roman
ну через бегинрид там есть конструктор асинка
Ayrat
Ayrat
там есть конструктор FromBeginEnd
Roman
просто большинство либ для этого используют таски
Roman
я вот подумал, как можно это в асинк перегнать помимо очевидных AwaitTask
Ayrat
внутрях корСлра