6

在函数式编程中与术语“引用透明”一起使用时,术语“不可观察”是什么意思?

4

1 回答 1

15

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

例如,它不能依赖于以下内容:

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

所有关于程序当前状态的事实要么是真要么是假,但没有表达式可以根据它们改变它的值。所以这些东西被称为non-observable

这部网络漫画及其在 reddit上的讨论也可能会启发你。

于 2011-01-31T05:32:54.500 回答