型ではなく、型の要素、具体的には整数によってパラメータ化されたHaskell型をいくつか作成しようとしています。例えば、R^2の(線形代数)ベクトルとR^3のベクトルは異なる型付きオブジェクトです。具体的には、私はハスケルにK-Dツリーを作成しています.3Dツリーと4Dツリーが異なるタイプになるように、データ構造を正の整数でパラメータ化したいと思います。Haskellで整数を型でパラメータ化する
私はタプルでツリーをパラメータ化しようとしましたが、どこにも出てこないようです(特にトリプルのようには見えないので、これはやや難しいようです。でもファンクタ(と私のような言うする方法を知らない、インスタンスHomogeneousTuple A =>ファンクタA)私はこのような何かやりたい:。いいだろう、またはこのようなものは次のようになり
data (TupleOfDoubles a) => KDTree a b = ... ---so in a 3DTree a is (Double,Double,Double)
を同様に良い
data KDTree Int a = ... -- The Int is k, so KDTree has kind Int -> * -> *
これらのいずれか効果は実行可能か妥当か?
おかげ -Joseph
サイドノートで、あなたがタイプに値からの関数のより一般的な並べ替えがある依存型に関する文献のいくつかに興味があるかもしれない:私は楽しんだhttp://www.cse.chalmers.se/~peterd /papers/DependentTypesAtWork.pdf私は確かに –
おかげでアモスを、。 –