Erlangでの単一割り当ては、よりわかりやすいコード(参照透過性)につながりますか?Erlangでの単一の代入はどのようにしてより読みやすいコードにつながりますか?
1
A
答えて
2
コーディングは簡単ですが、デバッグは難しいです。デバッグを簡単にするためのコード。 - Barry Rountree
1つの割り当てで、変数が関数本体全体で1つの値を持つことを確認できます。デバッグがはるかに簡単になります。あなたはいつでもデバッグとロギングを行うことができます。あなたはその価値を得る場所などを簡単に見つけることができます。それは明白ではありませんか?
1
機能的なプログラムの目的は、side effectsを回避することです。要するに、これは実行されるたびにまったく同じように動作するコードのプロパティです。だからこそshared state is being avoidedの理由と、なぜ開発者がErlangのprocess dictionaryに嫌なのか。純粋な関数型言語には副作用がありません。様々な関数型言語は、例えばHaskellのような副作用を引き起こすコードを正式化しようとします。
変数に割り当てられた値を変更できる場合、同じ関数を2回実行すると、変数に含まれる値によって結果が異なることは明らかです。オブジェクト上で実行される関数からのOOP出力では、そのオブジェクトに含まれる状態に依存する結果が生成されます。したがって、オブジェクトに含まれる状態も知らなくても、コードを正しく理解することはできません。
単一割り当てでは、出力は状態に依存するのではなく、関数に渡される引数にのみ依存します。これは、何かがクラッシュしてスタックトレースがある場合、または関数からデバッグ出力をログに記録する場合に特に便利です。コードを読み取って、各コードに値を割り当てることができます。同じコードを再度実行すると、これらの値が変更されていないことを知ることができます。
関連する問題
- 1. RefCellのようなより親しみやすいオブジェクトがありますか?
- 2. どのようにこのPHPコードをやりますか?
- 3. 大きな、より読みやすいコード化フォント
- 4. Neo4Jアンマネージドエクステンションにはどのようなコードがありますか?
- 5. どのようにソケットの読み取りとファイルの読み取りは異なるのですか?
- 6. ロジックはスイッチの代わりにポリモフィズムになりましたが、構築についてはどうですか?
- 7. コマンドラインの代わりにstdinからどのように読み込むことができますか?
- 8. 次のコードにはどのような誤りがありますか?
- 9. どのように読み取り専用ではなく
- 10. PerlTidyが代入を整列させずに単一の空白を追加しないようにするにはどうすればよいですか?
- 11. レールコンソールの戻り値をより読みやすくするために、どのように
- 12. どのようにストレージシステムのランダムな読み取りパフォーマンスをより迅速にテストできますか?
- 13. PythonコードにはどのようにTypeErrorがありますか?
- 14. node.jsで、ETIMEDOUTのようなerr.codeをより読みやすい文字列に変換するにはどうすればよいですか?
- 15. Cの代入式の結果はどうなりますか?次のコードで
- 16. Activemq:transportConnector URIをより読みやすくするにはどうすればよいですか?
- 17. 「n°」を2つの異なる単語とみなすブラウザがあり、どのようにして単語区切りを防止できますか?
- 18. ウェブサイトの読み込みをよりきれいにするにはどうすればよいですか?
- 19. テキストチャットのライブラリやプラットフォームにはどのようなものがありますか?
- 20. スレッドはAndroidでリスナーとどのようにやりとりしますか?
- 21. 変数の代わりにコードを代入する(そのコードのために)うまくいかない - ビッグコマース
- 22. NSISのセクショングループについて、一部のセクションのみを読み取り専用にするにはどうすればよいですか?
- 23. このコードはどのようにして青のみに切り替わりますか? (Python、PyQt)
- 24. どのようにすべてのアドレスの代わりに単一のIPアドレス(localhost)にバインドするようにtomcatを設定しますか?
- 25. 2つのアプリケーションが同じファイルを読み書きしていますが、クラッシュや読み取り時にデータが失われないようにするにはどうすればよいですか?
- 26. は、どのように私はこのようになりますtxt.file読み取ろうとレールに
- 27. Javaで入力を読み込むユニットテストクラスは、どのようにして単体テストできますか?
- 28. SyndicationFeed.Loadをより堅牢にすることはできますか?私はのRss /アトムの一握りを読みしようとしています
- 29. UITableViewのheightForRowAtIndexPathにはどのような代替オプションがありますか?
- 30. 丸めの代わりにどのように切り捨てますか? C