参考透明度

时间:2011-01-31 05:11:12

标签: scala functional-programming referential-transparency

在函数式编程中使用术语“引用透明”时,术语“不可观察”的含义是什么?

1 个答案:

答案 0 :(得分:15)

正如您可能知道的那样,术语“引用透明”意味着表达式的值仅取决于其各部分的,而不取决于有关它们的任何其他事实。

例如,它不能取决于以下内容:

  • 表达式的某些部分是否已经过评估(使用惰性语言)
  • 是否共享两个相等的值(指向内存中相同位置的指针)
  • 数据结构是否是循环的(即其指针创建一个循环)或不是

关于程序当前状态的所有事实都是真或假,但没有表达式可以根据它们改变其值。所以这些东西被称为不可观察的

This webcomicits discussion on reddit也可能启发你。