作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 OCaml 的新手,我想实现高斯消除作为练习。我可以使用有状态算法轻松实现,这意味着将矩阵保存在内存中,并通过传递对它的引用对其进行递归操作。
然而,这种状态带有命令式编程的味道。我知道 OCaml 中有一些功能可以做到这一点,但我想问一下是否有一些我没有想到的聪明的功能方法。
最佳答案
OCaml 数组是可变的,很难避免像命令式语言中的数组一样对待它们。
Haskell 有不可变数组,但根据我对 Haskell 的(有限)经验,在大多数情况下,您最终会切换到 monadic 可变数组。对于某些特定目的,不可变数组可能是惊人的。我一直想象你可以在 Haskell 中编写一个漂亮的动态编程实现,其中数组条目之间的依赖关系完全由它们中的表达式定义。关键是你真的只需要一次指定每个数组条目的内容。我不认为高斯消除遵循这种模式,因此它似乎不太适合不可变数组。然而,看看它是如何运作的会很有趣。
关于functional-programming - 新的 OCaml : How would I go about implementing Gaussian Elimination?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690311/
我是一名优秀的程序员,十分优秀!