gpt4 book ai didi

f# - 为什么我要使用即将到来的 let! ... 和!句法?

转载 作者:行者123 更新时间:2023-12-03 15:42:00 26 4
gpt4 key购买 nike

language suggestion指出在链接的文件中详细说明了这些优点。我快速浏览了一下,但看不到它的明确说明。
优点是每个语句都并行执行,所以我可能会得到速度提升?
或者是否有某种逻辑它迎合,使用通常的monadic不方便let! ?
我明白,这是适用的,意味着它带有我不能使用以前的表达式来确定后续表达式的逻辑的限制。那么这是否意味着权衡是效率的灵活性?

最佳答案

我理解的方式Don Syme's description ,前阵子读的时候,每一步都是let! ... and! ...链将被执行,不像你使用 let! ... let! ... .例如,假设您使用 option行政长官。那么如果你写

option {
let! a = parseInt("a")
let! b = parseInt("b")
return a + b
}
只有第一个 let!将被执行,因为 CE 一旦遇到 None 就会短路。改为写作 let! a ... and! b = ...将尝试解析两个字符串;虽然不一定是并行的,正如我所理解的。
在解析来自外部来源的数据时,我看到了这方面的巨大好处。考虑例如运行
parse {
let! name = tryParse<Name>("John Doe")
and! email = tryParse<EMail>("johndoe@")
and! age = tryParse<uint>("abc")
return (name, email, age)
}
并得到一个 Error(["'johndoe@' isn't a valid e-mail"; "'abc' isn't a valid uint"])作为返回,而不仅仅是第一个错误。这对我来说很整洁。

关于f# - 为什么我要使用即将到来的 let! ... 和!句法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63720133/

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