関数型プログラミングが流行していることもあって、頻繁に耳にする「参照透過性」という用語について考えます。 ∥ 参照透過性 - Wikipedia その過程で目にした、Stack Overflow 上の Reddy 氏の発言が面白かったので、ザックリと訳します。 用語の起源と、それがプログラミング言語に導入された経緯 一応意味は分かってはいるんですが、なぜ「副作用のない関数呼び出し」やら「変数への再代入の禁止」といった特性を「参照透過性」と呼称するのかが分かりませんでした。この場合の「参照」は、何が何を参照することであり、また、それがどういう状態にあることを「透過である」としているのかが、通り一遍調べてみても分かりませんでしたので、掘りに行ってきます。 英語版 Wikipedia の方には、この考え方がプログラミングの概念として導入された経緯についての論文が参考文献として挙げられています。
![「参照透過である」とは、何から何への参照がどういう条件を満たすことを言うのか - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/445124b763cb5b0e7e1505718e1f872728b0ce6c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJThDJUU1JThGJTgyJUU3JTg1JUE3JUU5JTgwJThGJUU5JTgxJThFJUUzJTgxJUE3JUUzJTgxJTgyJUUzJTgyJThCJUUzJTgwJThEJUUzJTgxJUE4JUUzJTgxJUFGJUUzJTgwJTgxJUU0JUJEJTk1JUUzJTgxJThCJUUzJTgyJTg5JUU0JUJEJTk1JUUzJTgxJUI4JUUzJTgxJUFFJUU1JThGJTgyJUU3JTg1JUE3JUUzJTgxJThDJUUzJTgxJUE5JUUzJTgxJTg2JUUzJTgxJTg0JUUzJTgxJTg2JUU2JTlEJUExJUU0JUJCJUI2JUUzJTgyJTkyJUU2JUJBJTgwJUUzJTgxJTlGJUUzJTgxJTk5JUUzJTgxJTkzJUUzJTgxJUE4JUUzJTgyJTkyJUU4JUE4JTgwJUUzJTgxJTg2JUUzJTgxJUFFJUUzJTgxJThCJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1hNzllNTdmYzVhNWYxNzlkY2YzNjVkMDY2OGE0MDgyNg%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrbmFrYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MTgyMGEzNWIxNTc2YWQ1YjJhZTM0MzE4N2RhYWVlMWU%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D83f49febd90b0a15963ca21c60b8dd44)