2012-02-24 5 views
1
import Data.Map as Map 

test :: Int -> Int -> Map -> Map 
test key value cache = Map.insert key value cache 

Erreur:Data.Map déclaration de type

`Map' is not applied to enough type arguments 
Expected kind `??', but `Map' has kind `* -> * -> *' 
In the type signature for `test': test :: Int -> Int -> Map -> Map 

Comment puis-je déclarer la fonction de passer Data.Map en tant que paramètre?

Répondre

6

Vous devez dire ce que c'est une carte de.

test :: Int -> Int -> Map Int Int -> Map Int Int 
test key value cache = Map.insert key value cache 

Vos clés sont Int s et les valeurs que vous stockez sont également Int s, de sorte que votre carte est de type Map Int Int.

Si les clés étaient String s et que les valeurs étaient Bool s, la carte aurait le type Map String Bool.