参考透明度

Lon*_*nks 6 functional-programming scala referential-transparency

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

Rom*_*aka 15

您可能知道,术语"引用透明"意味着表达式的仅取决于其各部分的,而不取决于有关它们的任何其他事实.

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

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

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

这的webcomic其在Reddit上的讨论可能会启发你.