169 похожих чатов

Бля, чё за нахер? вот так работает (#1 мой вариант): open System.Threading.Tasks let

fTask (job: unit -> Task<'T>) = task {
if false then
failwith "error"

let! result = job()
return result
}

let fAsync (job: unit -> Async<'T>) = async {
if false then
return failwith "error"
let! result = job()
return result
}

// resultAsync
fun() -> async.Return("test")
|> fAsync
|> Async.RunSynchronously
|> printfn "%A"

// resultTask
fun() -> Task.FromResult("123")
|> fTask
|> Async.AwaitTask
|> Async.RunSynchronously
|> printfn "%A"


а вот так не работет (#2 вариант Rustam)
open System.Threading.Tasks

let fTask (job: unit -> Task<'T>) = task {
if false then
return failwith "error"

let! result = job()
return result
}

let fAsync (job: unit -> Async<'T>) = async {
if false then
return failwith "error"
let! result = job()
return result
}

let result = (fAsync (fun() -> async.Return("test"))) |> Async.RunSynchronously
printfn $"{result}"

let result = (fTask (fun() -> Task.FromResult("123"))).GetAwaiter().GetResult()
printfn $"{result}"

8 ответов

29 просмотров

Так, в первом варианте не fun() -> (async.Return("test") |> ...) ли?

dd- Автор вопроса
TOV_MULTIMASSO
Так, в первом варианте не fun() -> (async.Return("...

эта часть в обоих варинтах работает не работает вот эта часть у Rustam: let result = (fTask (fun() -> Task.FromResult("123"))).GetAwaiter().GetResult()

dd
эта часть в обоих варинтах работает не работает во...

fun() -> Task.FromResult("123") |> fTask Это точно одно и то же с fTask (fun() -> Task.FromResult("123")) ?

TOV_MULTIMASSO
fun() -> Task.FromResult("123") |> fTask Это точн...

Нет, и это влияет на инференс

dd- Автор вопроса
dd- Автор вопроса

я просто return в ифе забыл :) #1 https://sharplab.io/#v2:DYLgZgzgNALiBOBXAdlAJiA1AHwPYAcBTZAAgGUBPCGQgWwDoAVAC3kIEM0BLZAcyfYQA1hACwAKAnBCMEiTCNBQkgAoAVrgBGIEii6yAtAD4Si4QB4A5IyMBKEgF4SMJSQDeEuV65h57YBCEzszEnl7hJAD0kWwwiPCkYOxcwADu+swkAESE8PC48FlhEXJJKekwmTl5BVlRkSSA8iAkgPwggAIggHwggIIggEIgHSSx8aSA7CCADCCAjCCA0iCA3CAkILYSxXLSMACEA4QQiMCyThqaKgviEYMJG1s7EgC+i+IrpQCCEBTIAMaq+zp6hiZPL69WGz2JyCf7uJYkHx+AJBSqhY4lOSnRLJNIZbK5fKFCErdZsC67Ej7Q4Q5HnbYwa63aLknZ/N4SMAoQ4kYwkUFvegAJRkQxUWRo1CyR2wJjA9NeElFJAl3JQlDerFwyFwiAgwAoUpM+HgPBgYFIWQApA8ipJxDT8RSzEIJComcgWWybfQAGL5Wg8gn8gCMACYAMzCkVim1amXPTkPVLJGBh8TS2Vc+X/JUqtUa8M6vUG7ImrJAA=== #2 https://sharplab.io/#v2:DYLgZgzgNALiBOBXAdlAJiA1AHwPYAcBTZAAgGUBPCGQgWwDoAVAC3kIEM0BLZAcyfYQA1hACwAKAnBCMEiTCNBQkgAoAVrgBGIEii6yAtAD4Si4QB4A5IyMBKEgF4SMJSQDeEuV65h57YBCEzszEnl7hJAD0kWwwiPCkYOxcwADu+swkAESE8PC48FlhEXJJKekwmTl5BUWS4hHSMACEJGwQiMCyThqaKrbFcrHxpO2dMBIAvhJSMqUAghAUyADGqr06eoYmi8srVjb2ToJ77oMkPn4BQZWhDSVDMiN+5RnZufmF502tY12OJF6/XOwwSbUIHS6Uxm4iaj0hMF2qwBKjASLWqJQ/RIxhIJ1W9AASk8EiosjRqFlbNSSNgdksCYSUJRVqxcMhcIgIMAKBJ8PAeDAwKQACRZNx/REMlaTOqzWTghFmZROVHK1RgLH2XHK+gAMXytGJCLJAEYAEwAZip1PoAHEZPNUskaPB+vaZMbxsDxPzBcKSGKJRDxsrZUA

dd
я просто return в ифе забыл :) #1 https://sharplab...

Так с ретурн и без - разные кейсы

dd- Автор вопроса
Vlæd Zá
Так с ретурн и без - разные кейсы

не мой кейс (я бы без return делал - собственно, потому и проглядел его)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта