2016-04-26 4 views

答えて

2

コーディングは簡単ですが、デバッグは難しいです。デバッグを簡単にするためのコード。 - Barry Rountree

1つの割り当てで、変数が関数本体全体で1つの値を持つことを確認できます。デバッグがはるかに簡単になります。あなたはいつでもデバッグとロギングを行うことができます。あなたはその価値を得る場所などを簡単に見つけることができます。それは明白ではありませんか?

1

機能的なプログラムの目的は、side effectsを回避することです。要するに、これは実行されるたびにまったく同じように動作するコードのプロパティです。だからこそshared state is being avoidedの理由と、なぜ開発者がErlangのprocess dictionaryに嫌なのか。純粋な関数型言語には副作用がありません。様々な関数型言語は、例えばHaskellのような副作用を引き起こすコードを正式化しようとします。

変数に割り当てられた値を変更できる場合、同じ関数を2回実行すると、変数に含まれる値によって結果が異なることは明らかです。オブジェクト上で実行される関数からのOOP出力では、そのオブジェクトに含まれる状態に依存する結果が生成されます。したがって、オブジェクトに含まれる状態も知らなくても、コードを正しく理解することはできません。

単一割り当てでは、出力は状態に依存するのではなく、関数に渡される引数にのみ依存します。これは、何かがクラッシュしてスタックトレースがある場合、または関数からデバッグ出力をログに記録する場合に特に便利です。コードを読み取って、各コードに値を割り当てることができます。同じコードを再度実行すると、これらの値が変更されていないことを知ることができます。

関連する問題