Size: a a a

F# Flood: Ручная работа

2020 February 11

NM

Nikolay M in F# Flood: Ручная работа
Я тут придумал даже как упросить, Some и None теперь не надо
источник

оГ

отец Григорий in F# Flood: Ручная работа
мап и тейквайл норм было б
источник

AH

Ayrat Hudaygulov in F# Flood: Ручная работа
отец Григорий
не - там надо на выходе получить резалт
let maybeAsyncUploadedFiles: Async<ResizeArray<int64>> =
 AsyncSeq.ofSeq files
 |> AsyncSeq.mapAsync tryUploadFileAsync
 |> AsyncSeq.fold(fun maybeList file ->
   maybeList
   |> Result.bind (fun (list: ResizeArray<_>) ->
     match file with
     | Result.Ok   (Some r) -> list.Add r  ; Result.Ok list
     | Result.Ok    None    -> list.Add -1L; Result.Ok list
     | Result.Error e       ->               Result.Error list)
   ) (Result.Ok(ResizeArray()))
 |> Async.map (function Ok x | Error x -> x)


EARLY return блять
источник

NM

Nikolay M in F# Flood: Ручная работа
:D
источник

AH

Ayrat Hudaygulov in F# Flood: Ручная работа
оно теперь собирает список до первой ошибки
источник

AH

Ayrat Hudaygulov in F# Flood: Ручная работа
и возвращает чо получилось
источник

AH

Ayrat Hudaygulov in F# Flood: Ручная работа
выглядит как говно, поэтому я виню дизайн @Dolfik
источник

оГ

отец Григорий in F# Flood: Ручная работа
зачем фолд и мутабельное?
источник

NM

Nikolay M in F# Flood: Ручная работа
Ayrat Hudaygulov
выглядит как говно, поэтому я виню дизайн @Dolfik
Ну вполне возможно дизайн говно :)
источник

AH

Ayrat Hudaygulov in F# Flood: Ручная работа
отец Григорий
зачем фолд и мутабельное?
Почему нет? оно ж локально мутабельное
источник

оГ

отец Григорий in F# Flood: Ручная работа
Ayrat Hudaygulov
Почему нет? оно ж локально мутабельное
да там замапить в сек резалтов и тейквайл из саксесс
источник

оГ

отец Григорий in F# Flood: Ручная работа
а потом замапить в то, что внеутри Ока
источник

AH

Ayrat Hudaygulov in F# Flood: Ручная работа
Кстати, да
источник

оГ

отец Григорий in F# Flood: Ручная работа
Nikolay M
Ну вполне возможно дизайн говно :)
что значит - ВОЗМОЖНО?!
источник

NM

Nikolay M in F# Flood: Ручная работа
Но я хз как ещё разрулить кейс, когда нужно сначала загрузить все файлы, а потом отправить запрос, при этом если файл не удалось загрузить - запрос не отправлять
источник

оГ

отец Григорий in F# Flood: Ручная работа
Ayrat Hudaygulov
Кстати, да
ленивость ж
источник

оГ

отец Григорий in F# Flood: Ручная работа
Nikolay M
Но я хз как ещё разрулить кейс, когда нужно сначала загрузить все файлы, а потом отправить запрос, при этом если файл не удалось загрузить - запрос не отправлять
ну ок :)
источник

оГ

отец Григорий in F# Flood: Ручная работа
Nikolay M
Но я хз как ещё разрулить кейс, когда нужно сначала загрузить все файлы, а потом отправить запрос, при этом если файл не удалось загрузить - запрос не отправлять
ну мы тут не все грузим. а тока до первой ошибки
источник

NM

Nikolay M in F# Flood: Ручная работа
Либо всё, либо ничего
источник

NM

Nikolay M in F# Flood: Ручная работа
Причём грузим последовательно
источник