所以我正在使用Data.VectorSpace并且我正在尝试扩展force-layout。
现在我想产生一个多态的'1'-标量。也就是说,如果将标量与向量相乘,则无论该向量的类型(参数)如何,都会产生相同的向量。可能吗?有没有有用的解决方法?
这是一个更具体的代码示例(它从我在这里使用的代码继续):
data Particle v = Particle { _pos :: Point v
, _vel :: v
, _force :: v
, _mass :: Scalar v
}
-- .. standalone Show and Eq omitted
initParticle :: AdditiveGroup v => Point v -> Particle v
initParticle p = Particle p zeroV zeroV unitScalar
unitScalar = undefined
-- Should always be true:
testInit :: Point (Double,Double) -> Bool
testInit p = ((_mass (initParticle p)) == 1::Double)
如何在上面定义“unitScalar”?