因此,我使用的是Data.VectorSpace,我試圖擴展force-layout。如何生成用於Data.VectorSpace的多態「單元標量」
現在我想生成一個多態'1'標量。也就是說,如果一個標量與一個向量相乘,將產生相同的向量,而不管該向量的類型(參數)如何。可能嗎?有沒有有用的解決方法?
這裏有一個更具體的代碼示例(從代碼中,我已經與here工作繼續):
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」?
這真的是你真正想要做的最好的模型嗎?要強制測量質量與位置相同的類型?在_all_處乘法運算到哪裏? –
這很可能不是我嘗試做的事情的最佳模式,但我必須從某處開始;我的多態能力是有限的。希望我可以改進迭代。在評估力量時,乘法應該稍後方便。 – worldsayshi