内部でのみ使用される関数内に可変ローカル変数を持っていますか(たとえば、少なくとも意図的に副作用がないなど)、まだ「非機能的」と見なされますか?
たとえば、「Scalaをvar
使用した関数型プログラミング」のコーススタイルチェックでは、使用法が不適切であると見なされます。
私の質問、関数に副作用がない場合、命令型のコードを書くことはまだ推奨されていませんか?
たとえば、アキュムレータパターンでテール再帰を使用する代わりに、入力が変更されない限り、ローカルforループを実行し、ローカルミュータブルListBuffer
を作成して追加することの何が問題になっていますか?
答えが「はい、副作用がなくても常に落胆している」場合、その理由は何ですか?
var
常に機能しません。Scalaには遅延値と末尾再帰の最適化があり、変数を完全に回避できます。