gpt4 book ai didi

f# - F# 如何从 AND 运算返回 bool 值?

转载 作者:行者123 更新时间:2023-12-05 01:16:11 25 4
gpt4 key购买 nike

我对 F# 相当陌生,只是对我的任务解决方案的复杂性感到好奇。我不打算解释我正在解决的整个任务,但我的想法是我想根据某个列表的所有元素是否满足某个过滤器来返回一个 bool 值。我正在递归地遍历列表并检查元素是否满足过滤器,然后返回结果以及我在尾部调用相同函数得到的下一个结果。

这样做时,我很好奇是否应该在每个步骤中检查是否为假,因为只要操作中的任何成员为假,AND 操作的结果就是假的。或者 F# 是否从 AND 操作本身的某个元素中获取 false 时立即返回 false?

例子:

// I have a function check : int -> bool
// check 1 returns false
check 1 && check 2

check 2 会被执行还是在 check 1 之后立即返回值,因为它返回 false?

最佳答案

&& 短路。如果 check 1 返回 false,则永远不会执行 check 2

如果您允许 check x 产生副作用,您可以看到这一点:

let check n =
printfn "Checking %i" n
n = 1

check 2 && check 1 // Just prints 'Checking 2'

关于f# - F# 如何从 AND 运算返回 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58842986/

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