gpt4 book ai didi

f# - 为什么这个 F# 计算表达式会给出警告?

转载 作者:行者123 更新时间:2023-12-01 08:41:39 25 4
gpt4 key购买 nike

这段代码:

type Result = Success of string

type Tracer() =
member x.Bind(p: Result, rest: (string -> Result)) =
match p with
| Success s -> rest s

let tracer = new Tracer()

let t = tracer {
let! x = Success "yes!"
let! y = Success "waste of time"
return! Success x
}

printfn "%A" t

打印成功“是!”

但是给出一个暗示它不应该工作的警告:

File1.fs(19,3):警告 FS0708:只有在计算表达式构建器定义了“ReturnFrom”方法时,才能使用此控制构造

似乎是一个奇怪的警告:如果它是正确的,那么代码不应该工作。真的只是说builder要合成ReturnFrom吗?

(F# 版本 1.9.7.4,编译为 .NET Framework 版本 v4.0.21006)

最佳答案

我将问题发送到 fsbugs@microsoft.com,这是一个错误。他们说下个版本会出错。

(他们几乎立即做出了回应,感恩节也同样如此——我只是花了一段时间才把信息放在这里。)

关于f# - 为什么这个 F# 计算表达式会给出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1800696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com