如何在不更新函数调用的情况下为纯函数添加新参数?

时间:2018-01-25 04:07:08

标签: functional-programming refactoring purely-functional

我使用一个输入参数创建一个纯函数(js中的示例,但问题不依赖于语言)并在我的应用程序中调用它。

var day = 'Tuesday';
var doYouExist = function(you) {
    return !!you;
}

然后我意识到我应该只检查你是否存在星期二,所以我决定更新功能......

var day = 'Tuesday';
var doYouExist = function(you) {
    if (day === 'Tuesday') {
      return !!you;
    }
}

但现在它并不纯粹。我可以添加day作为参数,但是在变量doYouExist()调用的所有地方都没有day变量。

所以我的选择是:

  1. 使用不纯的功能
  2. 将“day”注入调用该函数的所有位置,然后更新该函数以及对该函数的每次调用以包含第二个参数。
  3. 到目前为止,我一直在使用选择1,但我不知道推荐的模式(或任何实际达到我想要的方式)的功能方法。

1 个答案:

答案 0 :(得分:0)

如果day是常数,那么您不需要做任何事情,因为您的功能仍然是纯粹的。

相关问题