Size: a a a

2020 May 29

E

Elizabeth in F# Chat
let onUpdate (context: UpdateContext) =
   match context.Update with
   | { Message = Some msg } ->
       match msg.Text with
       | Some text ->
           if text.StartsWith("/start") then handleStartWithError context
           elif text = "/getDiscount" then handleGetDiscount context
           else ()
       | None -> ()
   | _ -> ()


UpdateContext -> Async<unit>
у handleStartWithError и handleGetDiscount
источник

E

Elizabeth in F# Chat
сейчас пишет ошибку вот там где возвращается просто () что не совпадают типы в бренчах - в некоторых Async<unit> в других unit
источник

VA

Vagif Abilov in F# Chat
А так не пойдет?
module Async =
 let fromResult result = async { return result }
источник

E

Elizabeth in F# Chat
пойдет
источник

E

Elizabeth in F# Chat
а вообще идея нормальная? у меня просто есть подозрение что раз нет такой функции может такие проблемы по другому принято решать
источник

VA

Vagif Abilov in F# Chat
Мне кажется, это вполне нормальная ситуация, когда нечто нужно обернуть в асинк.
источник

E

Elizabeth in F# Chat
согласен
источник

VK

Vladislav Khapin in F# Chat
Vagif Abilov
А так не пойдет?
module Async =
 let fromResult result = async { return result }
наверно лучше async.Return билдера дернуть
источник

VK

Vladislav Khapin in F# Chat
Напрямую
источник

G

George in F# Chat
Есть простая структура Point, хочу перегрузить для неё оператор (+), чтобы иметь возможность добавить к ней кортеж (самая нижняя строка), но в обоих вариантах функции выскакивают такие ошибки. Не подскажете, в чём дело?
источник

G

George in F# Chat
источник

SN

Shub Niggurath in F# Chat
George
Есть простая структура Point, хочу перегрузить для неё оператор (+), чтобы иметь возможность добавить к ней кортеж (самая нижняя строка), но в обоих вариантах функции выскакивают такие ошибки. Не подскажете, в чём дело?
вопрос интересный, но тебе это как бы и не нужно. для получения результата конверсия кортежа в твой тип не нужна
источник

SN

Shub Niggurath in F# Chat
а проблема в перегрузке, у тебя она не произошла. второй метод затенил первый
источник

G

George in F# Chat
Так и должно быть?
источник

SN

Shub Niggurath in F# Chat
George
Так и должно быть?
угу. перегрузка есть только для методов класса, а у тебя мемберы
источник

SN

Shub Niggurath in F# Chat
это не методы
источник

G

George in F# Chat
И как тогда получить результат без конверсии типов?
источник

G

George in F# Chat
А, сори, я только изучаю язык ещё)
источник

SN

Shub Niggurath in F# Chat
ну просто сматчи свой second на (x, y), можно прямо в сигнатуре функции
и потом {first.X + x, first.Y + y}
источник

SN

Shub Niggurath in F# Chat
источник