gpt4 book ai didi

functional-programming - 副作用和引用透明度有什么区别?

转载 作者:行者123 更新时间:2023-12-02 21:36:16 29 4
gpt4 key购买 nike

这些术语有什么区别?

  • 函数没有副作用

  • 函数是引用透明的

最佳答案

引用透明的函数肯定没有副作用。然而,没有副作用的函数并不总是引用透明的。

示例:

int x = 0;

int referentiallyTransparent(int y)
{
return y + 1;
}

int hasNoSideEffects(int y)
{
return x + y;
}

函数hasNoSideEffects没有副作用。这意味着调用hasNoSideEffects(y)不会影响程序的状态。但是,它返回的值受程序状态的影响,并且不仅仅取决于输入变量 y,因此调用 hasNoSideEffects(y) 不能总是被替换由它减少到的值。

关于functional-programming - 副作用和引用透明度有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318002/

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