有沒有一種方法可以使用Data.Map,使得值的類型取決於鍵的類型?我需要確保我從不在地圖中輸入錯誤的類型值。Haskell映射鍵的類型決定值的類型的地圖
例如: 比方說,我有類型KeyType a
和ValType a
那麼地圖應該有類似的類型
Map (KeyType a) (ValType a)
但是,這顯然是行不通的,因爲a
未綁定。
有沒有一種方法可以使用Data.Map,使得值的類型取決於鍵的類型?我需要確保我從不在地圖中輸入錯誤的類型值。Haskell映射鍵的類型決定值的類型的地圖
例如: 比方說,我有類型KeyType a
和ValType a
那麼地圖應該有類似的類型
Map (KeyType a) (ValType a)
但是,這顯然是行不通的,因爲a
未綁定。
可以使用一種類型的代名詞綁定a
,以便它必須是相同的您KeyType
和ValType
:
type MapFor a = Map (KeyType a) (ValType a)
現在你可以使用MapFor a
(對於某些特定a
)任何地方,你會一直使用Map (KeyType a) (ValType a)
。
這將會不適合我,因爲對於一張地圖,「a」是固定的。我希望'a'對於不同的鍵有所不同。我認爲「從屬地圖」對我很有用。 –
聽起來像保險庫https://www.stackage.org/package/vault –
也考慮一個['dependent-map'](https://hackage.haskell.org/package/dependent-map) –