什么是(10)〜(瓦特/秒)的(短)类型

时间:2013-12-13 13:31:32

标签: haskell dimensional

快速提问:使用dimensional GHC推断出testRate = 10 *~ (watt / second)的类型:

testRate
  :: Numeric.Units.Dimensional.Quantity
       (Numeric.Units.Dimensional.Dim
          (numtype-1.0.1:Numeric.NumType.Pos
             numtype-1.0.1:Numeric.NumType.Pos1)
          (numtype-1.0.1:Numeric.NumType.Pos
             numtype-1.0.1:Numeric.NumType.Zero)
          (numtype-1.0.1:Numeric.NumType.Neg
             (numtype-1.0.1:Numeric.NumType.Neg
                numtype-1.0.1:Numeric.NumType.Neg2))
          numtype-1.0.1:Numeric.NumType.Zero
          numtype-1.0.1:Numeric.NumType.Zero
          numtype-1.0.1:Numeric.NumType.Zero
          numtype-1.0.1:Numeric.NumType.Zero)
       a

testRate的 short 类型是什么?我如何推导出其他类型的单位?

2 个答案:

答案 0 :(得分:3)

如果切换到dimensional-tf,可以将其写为

testRate :: Quantity (Div DPower DTime) a

我认为推导出这些类型并不是一种很好的通用方法,只需写下与您认为单位应该相同的类型(使用MulDiv)。

答案 1 :(得分:0)

短型是什么意思?您可以做的最好的事情是删除所有模块限定符,例如

testRate
  :: Quantity
       (Dim
          (Pos Pos1)
          (Pos Zero)
          (Neg (Neg Neg2))
          Zero
          Zero
          Zero
          Zero)
       a