Size: a a a

2021 February 20

AV

Aleksey Vyushkov in F# Chat
зачем парсить всё выражение, если нашли хотя бы один невалидный токен
источник

IC

Ilya L Che in F# Chat
Вот было бы весело, если компиляторы так работали.
источник

AV

Aleksey Vyushkov in F# Chat
то есть просто так не сделать?
источник

AV

Aleksey Vyushkov in F# Chat
или я подход неверный выбрал
источник

DB

Denis Bobrov in F# Chat
было бы легче если бы ты скинул код текстом )
источник

AV

Aleksey Vyushkov in F# Chat
Ща
источник

оГ

отец Григорий... in F# Chat
Vladislav Khapin
Зачем ему сек если там дерево
Где?
источник

оГ

отец Григорий... in F# Chat
В упор не увидел рекурсивного парса
источник

DB

Denis Bobrov in F# Chat
Aleksey Vyushkov
или я подход неверный выбрал
ну и вообще для таких вещей есть парсер комбинаторы
источник

оГ

отец Григорий... in F# Chat
Хотя я в последнее время чот рассеянный стал. Может не увидел?
источник

AV

Aleksey Vyushkov in F# Chat
Я до дерева пока не дошёл
источник

DB

Denis Bobrov in F# Chat
источник

AV

Aleksey Vyushkov in F# Chat
источник

AV

Aleksey Vyushkov in F# Chat
Denis Bobrov
не то чтобы дурной тон, но exception-ы это другой способ обработки ошибок
он не плохой а просто другой
а комбинировать норм тема? или лучше стараться избегать?
источник

DB

Denis Bobrov in F# Chat
let getOperands (expr:string) =
   let parsed = expr.Split(' ') |> Array.map parseOperand
   let hasErrors = parsed |> Array.mapi (fun i y -> match y with | Ok _ -> None |Error e -> e) |> Array.choose id
   if hasErrors |> Array.isEmpty then
       parsed |> Array.map (fun x -> match x with | Ok v -> v) |> Result.Ok
   else
       Array.head hasErrors |> Result.Error
источник

DB

Denis Bobrov in F# Chat
вот грязно но вроде то что просили
источник

AV

Aleksey Vyushkov in F# Chat
а чтоб за O(n)?
источник

I

IdiocyAcceptance in F# Chat
Aleksey Vyushkov
а комбинировать норм тема? или лучше стараться избегать?
Как правило, можно объявить DU с доменными ошибками при той же валидации, возвращать Error<твой DU>
источник

DB

Denis Bobrov in F# Chat
Aleksey Vyushkov
а комбинировать норм тема? или лучше стараться избегать?
комбинировать exception-ы и result-ы ?
Никто не мешает сделать Result<'a,exn>
источник

DB

Denis Bobrov in F# Chat
IdiocyAcceptance
Как правило, можно объявить DU с доменными ошибками при той же валидации, возвращать Error<твой DU>
Да вот так лучше всего
источник