Size: a a a

2021 July 10

IC

Ilya L Che in F# Chat
Пока что так. Не могу понять, как в итоге позвать функцию каста на n
let inline factorial< ^a when (^a or bigint): (static member op_Implicit : ^a -> bigint)> (n: ^a) : bigint =
   let rec factorial' (p : bigint) =
       match p with
       | x when x <= 1I -> 1I
       | _ -> p * factorial' (p - 1I)
   let bi : bigint = (*call op_Implicit here*) n
   factorial' bi
источник

IC

Ilya L Che in F# Chat
Можно схитрить и использовать кастомный оператор !>
let inline (!>) (x:^a) : ^b = ((^a or ^b) : (static
member op_Implicit : ^a -> ^b) x)
Тогда в коде выше будет просто
let bi: bigint = !> n
Ну или сразу factorial' !> n
А как "заинлайнить" код оператора, я хз.
источник

IC

Ilya L Che in F# Chat
Иван если не видел ^
источник

IC

Ilya L Che in F# Chat
И если юзать оператор, то можно указание типа выпилить, конечно. Просто
factorial n = ...
источник

IC

Ilya L Che in F# Chat
А, так оно для bigint не работает. Всё, у меня лапки.
источник

RM

Roman Melnikov in F# Chat
next передают, потому что в жирфе все хэндлеры - мидлвари АСП.нет
источник

NK

ID:0 in F# Chat
источник

И

Иван in F# Chat
Да и фиг с ним, наверно не в искусственных примерах оно и не нужно
источник

IC

Ilya L Che in F# Chat
Ну почему, могу представить ситуацию, когда хочется функцию, принимающую тип или другой тип, который можно конвертировать в первый. Но в худшем случае можно 2 функции, да.
источник
2021 July 11

VS

Vladimir Shchur in F# Chat
источник

I

IdiocyAcceptance in F# Chat
Я думаю что в Bolero эту проблему решили давно, не?
источник

VS

Vladimir Shchur in F# Chat
Так он хочет там уйти от болеро
источник

И

Иван in F# Chat
Какой правильный способ заигнорить возвращаемое значение асинхронной функции в CE? (например при апдейте базы меня это значение может и не интересовать)
let! _ = ... выглядит как какой-то костыль, через do что-то не получается заставить работать
https://sharplab.io/#v2:DYLgZgzgNALiBOBXAdlAJiA1AH2AUxgAIB3eASxjwBUB7AEQCNCBeQgQwgE9kBjQgb0LwCieMkIAGQgF8AsACgF+IhBoBbPAEEuvAGIoeMMjXHMFhC+x19+5y/eUBCQgH0WJcpVqMFd+xeEYUXEACgBKPxlfeQBtAB4AUWQYeE4ABRoyZIA+AF0lAkI1Niz2eABzADcWSI5uG0I0GmdVDW16/V4jEyj5e2xswnbeADoAJRQAZXqAC3gTGkQIYE5o+wkgA===
источник

DB

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

АВ

Андрей Вилинский... in F# Chat
|> Async.Ignore
источник

DB

Denis Bobrov in F# Chat
а вот да )
       do! writeToDb |> Async.Ignore
источник

И

Иван in F# Chat
Тогда другой вопрос, если там не async, а task?
источник

IC

Ilya L Che in F# Chat
Можно попробовать Async.AwaitTask |> ignore, но не помню, сработает ли.
источник

DB

Denis Bobrov in F# Chat
если с таскбилдером, то хз - зависит от билдера, я не помню где там что
а если без билдера то мб просто (fun |> Async.AwaitTask) |> ignore или как то так
источник

IC

Ilya L Che in F# Chat
Не вижу причин, почему в билдере не работало бы. Обычный вызов функции и игнор результата.
источник