私は現在、空き時間に Scala で関数型プログラミングを学んでおり、未熟な初心者の質問があります。
Haar ウェーブレット変換の計算などを行う場合、つまり、オブジェクトによって表されるデータ自体が変更されない場合に、不変オブジェクトを持つことの優雅さを見ることができます。
しかし、不変性を示すときの例として、誰かが小さなゲームを持っているブログを見ました。クリーチャー オブジェクトがダメージを受けた場合、その状態は変化しませんでした。新しいヒットポイントと新しい「X へのアグロ」フラグを持つ新しいクリーチャー オブジェクトを返しました。しかし、MMORPG のようなものを設計する場合、World of Warcraft は言います。戦場にいる 100 人のプレイヤー...おそらく数千の攻撃とバフ/デバフ スペル効果がさまざまな方法でそれらに影響を与えます。完全に不変のオブジェクトを使用してシステムを設計することはまだ可能ですか? 私には、「ティック」ごとに新しいインスタンスの巨大な群れがあるように思えます。オブジェクトの現在有効なインスタンスを取得するには、すべてのクライアントが何らかの中心的な「ゲームワールド」オブジェクトを常に通過する必要がありますか?
関数型プログラミングはこれに対応していますか、それとも「最高の仕事のための最高のツール、おそらくここでは不変ではない」のケースですか?