gpt4 book ai didi

language-agnostic - 有没有短路乘法之类的东西?

转载 作者:行者123 更新时间:2023-12-04 14:49:55 25 4
gpt4 key购买 nike

我们都知道逻辑表达式中的短路,即当

if ( False AND myFunc(a) ) then
...

不打扰执行 myFunc()因为没有办法 if条件可以为真。

我很好奇你的日常代数方程是否有等价物,比如说
result = C*x/y + z

C=0评估第一项是没有意义的。如果 x 在性能方面没有太大关系和 y是标量,但如果我们假装它们是大矩阵并且操作成本高(适用于矩阵),那么肯定会有所作为。当然,您可以通过输入 if C!=0 来避免这种极端情况。陈述。

所以我的问题是这样的功能是否存在以及它是否有用。我不是一个程序员,所以它可能以我没有遇到过的名字命名;如果是这样,请启发我:)

最佳答案

您正在谈论的概念有不同的名称:惰性求值、非严格求值、按需要调用等等,实际上它比仅仅在这里和那里避免乘法要强大得多。

有像 Haskell 这样的编程语言或 Frege其评价模型不严格。在那里编写“短路”乘法运算符会很容易,例如,您可以编写如下内容:

infixl 7 `*?`        -- tell compiler that ?* is a left associative infix operator
-- with precedence 7 (like the normal *)

0 *? x = 0 -- do not evaluate x
y *? x = y * x -- fall back to standard multiplication

关于language-agnostic - 有没有短路乘法之类的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145894/

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