通常関数型言語に関連付けられている手法またはパラダイムは、命令型言語でも生産的に使用できますか?
例えば:
- 再帰は、テールコール最適化のない言語では問題になる可能性があり、その使用は限られたケースのセットに制限されるため、有用性は限られています
- マップとフィルターは、関数型の感覚を持っているにもかかわらず、非関数型言語への道を見つけました
私はたまたま、関数型言語の状態について心配する必要がないのが本当に好きです。私が特に頑固だったら、変数を変更せずに、関数に渡される変数と関数から返される値に自分の状態をカプセル化するだけで、C プログラムを書くかもしれません。
関数はファーストクラスの値ではありませんが、Java のオブジェクトで関数をラップして、それを別のメソッドに渡すことができます。関数型プログラミングと同様に、楽しくありません。
それでは、関数型プログラミングのベテランにとって、命令型言語でプログラミングする場合、FP のどのアイデアをうまく適用できますか?