参考透明度

发布于 2024-10-15 04:54:44 字数 45 浏览 1 评论 0原文

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

What is the meaning of the term "Non-observable" when used in context with the term "referentially transparent" in functional programming?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怕倦 2024-10-22 04:54:44

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

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

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

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

此网络漫画其在 reddit 上的讨论也可能会给您带来启发。

As you might know, the term "referentially transparent" means that the value of expression can depend only on the values of its parts, and not on any other facts about them.

For example, it cannot depend on the following:

  • Whether some part of expression is already evaluated or not (in a lazy language)
  • Whether two equal values are shared (are pointers to the same location in memory) or not
  • Whether a data structure is cyclic (i.e. its pointers create a cycle) or not

All those facts about the current state of the program are either true or false, but no expression can change its value depending on them. So those things are called non-observable.

This webcomic and its discussion on reddit might enlighten you as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文