让我远离像 Lisp 这样的函数式语言的一个原因是我不知道如何进行“原始”数组迭代。比如说,我在 C 中有一个数组,它代表屏幕像素的 RGB 值。使用 C 中的 for 循环更改颜色是微不足道的,但是如何在 Lisp 中优雅地做到这一点?
编辑:
对不起,我没有正确表达我的问题。在 C 中,当我想改变屏幕上的颜色时,我只需在数组的一部分上编写一个 for 循环。但在 scheme、clojure 或 haskell 中,所有数据都是不可变的。所以当我改变矩阵的一部分时,它会返回一个全新的矩阵。这有点尴尬。是否有一种“干净”的方法来更改矩阵的一部分的颜色,而无需递归整个数组并制作副本?