Ale*_*lex 7 ocaml functional-programming
我是OCaml的新手,我想将高斯消除作为练习来实现.我可以使用有状态算法轻松完成它,这意味着在内存中保留一个矩阵,并通过传递对它的引用来递归地操作它.
然而,这种状态有点强制性的编程.我知道OCaml有能力做到这一点,但是我想问一下我是否有一些我没有想过的聪明的功能方式.
OCaml 数组是可变的,很难避免像命令式语言中的数组一样对待它们。
Haskell 有不可变数组,但根据我对 Haskell 的(有限)经验,在大多数情况下你最终会切换到一元的、可变的数组。对于某些特定目的来说,不可变数组可能是令人惊奇的。我一直想象你可以在 Haskell 中编写一个漂亮的动态编程实现,其中数组条目之间的依赖关系完全由其中的表达式定义。关键是您实际上只需要指定每个数组条目的内容一次。我不认为高斯消除遵循这种模式,因此它似乎不太适合不可变数组。不过,看看它的效果如何会很有趣。
| 归档时间: |
|
| 查看次数: |
671 次 |
| 最近记录: |