2017-05-09 12 views
4

値のタイプがキーのタイプに依存するような方法でData.Mapを使用する方法はありますか?私は地図に間違った型付きの値を挿入することがないようにする必要があります。例えばHaskell Mapキーのタイプによって値のタイプが決定される

: その後、地図

Map (KeyType a) (ValType a)

に似たタイプを持つ必要があります。しかしaがバインドされていないため、これは明らかに動作しないのは、私がタイプKeyType aValType a があるとしましょう。

それはあなたの KeyTypeValTypeで同じである必要がありますように、あなたは aをバインドするために型シノニムを使用することができます
+0

ボールトのように聞こえるhttps://www.stackage.org/package/vault –

+7

['dependent-map'](https://hackage.haskell.org/package/dependent-map)も参考にしてください –

答えて

0

type MapFor a = Map (KeyType a) (ValType a) 

今、あなたはどこでもあなたが使用していたでしょう(いくつかの特定のa用)MapFor aを使用することができますMap (KeyType a) (ValType a)

+2

これはある地図では、「a」が固定されているので、私のためには機能しません。私は 'a'を別のキーで違うものにしたい。私は「依存マップ」が私のために働くと思う。 –

関連する問題