我正在编写一个玩具编译器的内容,如果结果仅取决于参数的值,则可以优化函数调用。因此,诸如XOR和CONCATATE之类的函数仅取决于其输入,以相同的输入调用它们始终给出相同的输出。但是,诸如时间和兰德之类的功能取决于“隐藏”程序状态,并用相同的输入调用它们可能会产生不同的输出。我只是想弄清楚什么形容词是区分这两种函数,例如“同构”或“重点”之类的东西。有人可以告诉我我要寻找的单词吗?

有帮助吗?

解决方案

您要寻找的一词是 纯的

其他提示

我认为这就是称为 纯函数:

在计算机编程中,如果这两个有关该功能的陈述都具有:一个函数可以描述为纯净的函数:

  • 在给定相同的参数值的情况下,该函数始终评估相同的结果值。函数结果值不能取决于可能随着程序执行的进行或在程序的不同执行之间发生变化的任何隐藏信息或状态,也不能取决于I/O设备的任何外部输入。
  • 对结果的评估不会引起任何可观察到的副作用或输出,例如可突变对象的突变或对I/O设备的输出。

结果值不必取决于参数值的全部(或任何)。但是,它必须取决于参数值。

我想您可以说,如果您通过“纯函数”,形容词是“纯”。

我总是了解到,当参数始终相同时,其输出始终相同的函数称为“确定性”。就个人而言,我觉得这是一个更具描述性的术语。我猜“纯函数”是定义上的确定性,似乎也没有任何副作用也需要纯函数。我认为所有确定性函数都不是这种情况(只要相同参数的返回值始终相同)。

Wikipedia链接: http://en.wikipedia.org/wiki/deterministic_algorithm

引用:

给定特定的输入,它将始终产生相同的输出,而基础机器将始终通过相同的状态序列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top