我有以下类型:
type MultiSet<'a when 'a: comparison> = MSet of Map<'a, int>
Run Code Online (Sandbox Code Playgroud)
我现在想要使用签名声明此类型的af map函数:
('a -> 'b) -> Multiset<'a> -> Multiset<'b> when 'a : comparison and 'b : comparison
Run Code Online (Sandbox Code Playgroud)
我试过了 :
let map m ms =
match ms with
| MSet s -> MSet ( Map.map (fun key value -> m key) s )
Run Code Online (Sandbox Code Playgroud)
但它有签名:
('a -> int) -> Multiset<'a> -> Multiset<'a> when 'a : comparison
Run Code Online (Sandbox Code Playgroud)
当我想要第一个提到的函数签名时,我的实现有什么问题?