gpt4 book ai didi

javascript - 函数式编程中的引用透明性

转载 作者:行者123 更新时间:2023-12-01 13:11:34 26 4
gpt4 key购买 nike

我是 JS 的新手,在学习函数式编程时遇到了“引用透明”这个术语。另外,我发现了这个声明“引用透明性说用它的值替换纯函数是安全的”。这是否意味着只要函数变热,使用 RT 就可以让 JIT 编译器轻松地将函数替换为其返回值?是真的吗?

最佳答案

这是一个例子:

这是一个纯函数:它总是对相同的输入返回相同的输出

const even = x => x % 2 === 0;

然后让我们创建 isTenEven(),它将检查 10 是否为偶数:

const isTenEven = () => even(10);

因为我们保证 even(10) === true始终为真,所以我们确实可以用一个值替换函数调用:

const isTenEven = () => true;

而且您的程序仍然可以工作。

但是,如果 even 不是纯的,您将无法这样做!
这是一个愚蠢的例子:每月一次 10 将不再是偶数:

const even = x => (new Date()).getDate() === 15 ? false : x % 2 === 0;

也许您的程序将 isTenEven() 排除在返回 truefalse 之外,因此强制它始终假设它将返回 true 可能导致意想不到的后果。

当然,在这种特殊情况下,我不确定这些后果会是什么,但你永远不知道......这正是重点。

关于javascript - 函数式编程中的引用透明性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624286/

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