我正在开发一些Clojure中的仿真软件,它需要处理大量的矢量数据(基本上起源于Java浮点数组的偏移量,长度通常在10-10000范围内)。大量这些载体需要经过各种处理步骤 - 例如规范化向量,将两个向量流连接在一起,计算移动平均值等。
我希望做的是创建一个更具功能性的Clojure解决方案,而不是以命令式的方式做所有事情,而不是:
这听起来像是一种明智的做法吗?
如果是这样,任何可能有帮助的实现提示或库?
答案 0 :(得分:3)
在函数式语言中,一切都是数据流。您可以将函数用作模块概念。
解决每个用例:
(def module-a some-function)
为了方便模块的扩展,我建议使用Clojure地图作为你的状态,其中一个字段是你的花车数组。(def combined-module (compose module-a module-b)
:moving-average
字段的Clojure地图,则关键字:moving-average
是您的访问者功能。状态不存储在模块中。答案 1 :(得分:2)