当术语“不可观察”与函数式编程中的术语“引用透明”一起使用时,其含义是什么?
您可能知道,术语“引用透明”意味着表达式的值只能依赖于values它的各个部分,而不是关于它们的任何其他事实。
例如,它不能依赖于以下内容:
- 表达式的某些部分是否已经被求值(用惰性语言)
- 两个相等的值是否共享(指向内存中同一位置的指针)
- 数据结构是否是循环的(即它的指针创建一个循环)
关于程序当前状态的所有这些事实要么是真要么是假,但是没有任何表达式可以根据它们改变其值。所以那些东西被称为不可观察的.
这部网络漫画 http://ro-che.info/ccc/09.html and Reddit 上的讨论 http://www.reddit.com/r/haskell/comments/c4hnr/zhuangzi_butterfly_and_referential_transparency/c0q356m也许也会启发你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)