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

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

Ошибка:Data.Map декларации типа

`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 

Как я могу объявить функцию, чтобы передать Data.Map в качестве параметра?

ответ

6

Вы должны сказать, что это такое карта of.

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

Ваши ключи Int s и значения вы хранящие также Int s, так что ваша карта имеет тип Map Int Int.

Если ключи были String s и значения были Bool s, карта имела бы тип Map String Bool.

Смежные вопросы