1

何度も検索しても見つからなかったが、どこかで新しいプログラミング言語を作成する人がいる場合、すべてが式である場合、完全に参照透過的であるということをどこかに準備しました。

参照透過性に関するいくつかの質問は、Ruby や Perl などの特定の言語がほとんどすべてを式として持っていることを示しています。

これは可能ですか/存在しますか?

私がそれを理解していれば、プログラミング言語が完全に参照透過的である場合、これは副作用がまったくないことを意味し、副作用のない完全なプログラミング言語を持つことは可能ですか?

そして、タイトルの主な質問は、完全に参照透過的なプログラミング言語を作成するという目標がある場合、言うまでもなく、すべてが式になるということでしょうか?

4

2 に答える 2

4

式によって値を返すものを理解する場合、式ではない計算は値を返してはならず、参照透過性によって安全に削除できます。そうです、参照透過性では、すべてが式である必要があります。

しかし、すべてが式であるからといって、副作用がないというわけではありません。たとえば、C 言語には副作用のある式がたくさんあります。インクリメント演算子とデクリメント演算子 ++ と -- を含む任意の式を取ります。

副作用のないプログラミング言語がいくつかあります。Haskell が最も広く使用されています。モナドと呼ばれる巧妙なトリックを使用して、状態の変更が必要な状況を解決します。たとえば、画面に「Hello」を出力するために、Haskell は既存のユニバースを画面に単語が表示されるユニバースに変更しません。単語が画面上にある新しい宇宙を作成して返します。

于 2013-07-24T08:35:46.597 に答える
2

副作用のない完全なプログラミング言語を持つことは可能です。Lisp、haskell、または他の多くの関数型言語を見てください。これらはすべて、あなたが考えていることのかなり良い例だと思います。

于 2013-07-24T08:27:35.783 に答える