IndexedSeq[Double]
在设计特定领域的数值计算库时寻找要使用的正确数据类型(例如)。对于这个问题,我将范围限制为使用Double
. 该库将定义一个数字函数,这些函数通常应用于一维数组中的每个元素。
注意事项:
- 首选不可变数据类型,例如
Vector
或IndexedSeq
- 想要最小化数据转换
- 在空间和时间上合理高效
- 对使用图书馆的其他人友好
- 优雅干净的 API
我应该使用集合层次结构更高的东西,例如Seq
?
还是只定义单元素函数并将映射/迭代留给最终用户更好?
这似乎效率较低(因为每组调用一次可以完成一些计算),但同时是一个更灵活的 API,因为它适用于任何类型的集合。
有什么建议吗?