小编CMZ*_*6P3的帖子

Haskell算术运算和任意/固定精度数的DB持久性

作为Haskell(GHC平台)的初学者,我遇到了处理与业务领域相关的数据类型和算术运算的问题,涉及货币/货币操作,我正在寻找解决方案.

我正在开发应该与(独立)会计模块(通过Web服务)接口的应用程序,同时具有用于临时数据输入的(web)用户界面,该用户界面存储在单独的数据库(PostgreSQL)中.

我来自C#/ F#环境,System.Decimal涵盖了那里的所有核心需求.如果我错了,请纠正我,但Haskell似乎没有可被视为等效的集成(默认)数据类型.

理想的选择是提供任意精度算术的数据类型,或者至少是Decimal128(IEEE 754)中的某些内容.该类型应该支持舍入(最接近,从零开始,如果可能还与偶数相关)和以下操作:加,减,乘,除(理想情况下也是平方/根).还应支持类型之间的转换.

从我设法发现,Hackage上有两个Haskell模块应该完全执行计算--Data.Fixed和Data.Decimal(顺便说一句,有什么方法可以在Haskell中创建自定义文字 - 例如复制123.45m来自F#?).至少后者会尽我所知(在快速测试之后)启用我在前一段中描述的大部分内容,但是当我添加一个DB(PostgreSQL通过Persistent/HDBC)和一个Web框架(YESOD)时混合的东西看起来不那么好看.似乎缺乏支持.

是否有任何其他组合能够以最小的摩擦力实现我所描述的端到端(数据输入=>数据处理=>存储)(例如,从DB加载后从字符串手动转换似乎很奇怪,具有非常强类型的语言)没有精度的损失(任何指针欢迎)?

haskell persistent yesod hdbc

5
推荐指数
1
解决办法
637
查看次数

标签 统计

haskell ×1

hdbc ×1

persistent ×1

yesod ×1