私が Lisp のような関数型言語から遠ざかる理由の 1 つは、「生の」配列反復を行う方法がわからないことです。たとえば、スクリーン ピクセルの RGB 値を表す C の配列があるとします。色の変更は C の for ループでは簡単ですが、Lisp でこれをエレガントに行うにはどうすればよいでしょうか?
編集:
申し訳ありませんが、質問を正しく表現していません。C では、画面の色を変更したい場合、単に配列の一部に for ループを記述します。しかし、scheme、clojure、または haskell では、すべてのデータは不変です。したがって、マトリックスの一部を変更すると、新しいマトリックスが返されます。それは少し厄介です。配列全体を再帰してコピーを作成せずに、マトリックスの一部の色を変更する「クリーンな」方法はありますか?