gpt4 book ai didi

f# - 如何在没有 let 关键字的情况下对计算表达式调用绑定(bind)?

转载 作者:行者123 更新时间:2023-12-04 23:06:29 25 4
gpt4 key购买 nike

假设我有这个:

MyComputationExpression {
let! addr = Salesrecord.Address
let! name = Salesrecord.Name
return (name + " " + addr)
}

有什么方法可以即时“解包”(调用 bind 方法)地址和名称吗?有点像:

MyComputationExpression {
(Salesrecord.Name! + " " + Salesrecord.Address!)
}

(如果 ! 是动态解包的运算符)。每次我只想使用一次 bind 的结果时都必须声明一个新变量似乎有点冗长。

最佳答案

BindReturn 方法在 MyComputationExpression 上可用。您的原始代码将转换为以下等效代码:

MyComputationExpression.Bind(
Salesrecord.Address,
fun addr -> MyComputationExpression.Bind(
Salesrecord.Name,
fun name -> async.Return (name + " " + addr)))

这是非常丑陋的代码,这就是计算表达式作为语言特性存在的原因。目前无法以您想要的方式内联使用它们。这将是一个额外的语言功能和 it has been suggested before .

关于f# - 如何在没有 let 关键字的情况下对计算表达式调用绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47331979/

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