gpt4 book ai didi

javascript - 纯函数可以依赖于外部常量吗?

转载 作者:可可西里 更新时间:2023-11-01 02:41:46 26 4
gpt4 key购买 nike

我正在阅读的一篇文章将此作为不纯函数的示例(在 JavaScript 中):

const tipPercentage = 0.15;

const calculateTip = cost => cost * tipPercentage;

这让我觉得有点奇怪,因为 tipPercentage 是一个具有不可变值的常量。当常量是函数时,纯函数的常见示例允许依赖不可变常量。

const mul = (x, y) => x * y

const calculateTip = (cost, tipPercentage) => mul(cost, tipPercentage);

在上面的例子中,如果我错了请纠正我,calculateTip 通常会被归类为纯函数。

所以,我的问题是:在函数式编程中,如果函数依赖于具有不可变值的外部定义常量,而该值不是函数,那么该函数是否仍被视为纯函数?

最佳答案

是的,它是一个纯函数。纯函数是 referentially transparent ,即可以在不改变程序行为的情况下用函数调用的结果替换函数调用。

在您的示例中,替换例如始终有效calculateTip (100) 在您的程序中的任何位置,其结果为 15,行为没有任何变化,因此该函数是纯函数。

关于javascript - 纯函数可以依赖于外部常量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45672603/

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