ベクトル空間ライブラリを使用するプログラムに取り組んでいますが、使用に問題があります。以下のコードを参照してください。
import Data.VectorSpace
-- scale a vector with a float
step :: (VectorSpace a) => a -> Float -> a
step x dt = x ^* dt
このコード セグメントをコンパイルすると、ベクター型クラスに関連付けられたスカラー型に関するエラーが発生します。
Could not deduce (Scalar a ~ Float)
from the context (VectorSpace a)
bound by the type signature for
step :: VectorSpace a => a -> Float -> a
at Test.hs:5:9-42
In the expression: x ^* dt
In an equation for `step': step x dt = x ^* dt
このコンパイラ エラーを修正する型シグネチャはありますか? または、型で探している操作 (加算やスケーリングなど) を記述するために使用するより良いライブラリはありますか? 最終的には、コードのようなものを使用したいと考えています。
step (1,1) 0.5
step 1 0.5
基本的に、ベクトル空間が定義するインスタンスのいくつかを再利用したいと考えています。