参考文献的透明度

引用透明性是计算机程序部分的一个特点。如果一个程序的一部分可以被替换成它所返回的值而不改变程序的行为,那么它就被称为"引用透明"。一个引用透明的函数必须是纯粹的--如果它接受相同的输入,它必须总是给出相同的输出,而且它必须没有任何副作用--程序中除了给出一个值之外,没有其他的动作。与引用透明相反的是引用不透明

数学中,所有的函数都是透明的,因为一个数学函数只能取值并吐出一个值。在编程中,这并不总是正确的--一个函数可能也会找出今年的哪一天,或者打印一条信息到屏幕上。由于这种差异,有些人在编程中使用其他名称的函数,比如程序。

引用透明化让程序员和编译器把代码看成是一个重写系统--把一个表达式替换成其他东西。这可以帮助完成一些任务,比如。

  • 证明程序或代码是正确的--无论如何,它都能做到它应该做的事情。
  • 算法更简单。
  • 使得修改代码更加容易,同时还能确保代码的作用。
  • 使代码运行的速度更快,或者以占用更少内存的方式运行。

做最后一项任务有几种方法--最著名的是记忆化(在第一次之后保存答案),普通子表达式消除(弄清楚是否值得将代码中相同的两个部分合并),懒惰评估(直到代码真正需要时才找到答案),以及并行化(同时处理多个问题)。

问题和答案

问:什么是指代透明度?
答:参照透明性是计算机程序部分的一个特点,即程序的一部分可以用它所反馈的值来代替,而不改变程序的行为。

问:什么是参照性透明的反面?
答:参考性透明的反面是参考性不透明。

问:数学中的所有函数都是指代透明的吗?
答:是的,数学中的所有函数都是指代透明的,因为数学函数只能接收数值并吐出一个数值。

问:参照性透明如何帮助程序员和编译器?
答:参考透明性让程序员和编译器把代码看作是一个重写系统--它可以接收一个表达式并将其替换成其他东西。这有助于完成一些任务,如证明程序或代码是正确的,使算法更简单,使改变代码更容易,同时仍能确定它做了它应该做的事,以及使代码运行得更快或使用更少的内存。

问:有哪些技术可用于使代码运行得更快或使用更少的内存?
答:一些用于使代码运行得更快或使用更少内存的技术包括记忆化(在第一次之后保存答案),常见的子表达式消除(弄清楚是否值得将代码中相同的两部分结合起来),懒惰评估(在代码真正需要答案时才找到答案),以及并行化(同时处理多个问题)。

问:编程中的函数与数学中的函数相比有什么不同吗?
答:是的,编程中的函数与数学中的函数相比是有区别的--在编程中,一个函数可能也会找出今年的哪一天,或者在屏幕上打印一条信息,而数学函数则不可能这样。

AlegsaOnline.com - 2020 / 2023 - License CC3