나는 다음과 같은 유형이 있습니다지도 <'a, int>
type MultiSet<'a when 'a: comparison> = MSet of Map<'a, int>
을하고 지금은 서명이 유형의 AF 맵 함수를 선언 할 : 나는 시도
('a -> 'b) -> Multiset<'a> -> Multiset<'b> when 'a : comparison and 'b : comparison
:
let map m ms =
match ms with
| MSet s -> MSet (Map.map (fun key value -> m key) s)
그러나 서명이 있습니다 :
('a -> int) -> Multiset<'a> -> Multiset<'a> when 'a : comparison
처음 언급 한 기능 서명을 원할 때 구현에있어 잘못된 점이 있습니까?
좋은 답변입니다. 다수의 이전 키가 동일한 새 키에 매핑 될 때 수행 할 작업을 고려해 볼 가치가 있습니다 (카운트를 함께 추가하거나 오류를 발생 시키거나 임의의 값을 유지해야합니까?) – kvb
이것은 좋은 지적입니다. 그러나 나는 그 답을 과부하하고 싶지 않았고, 즉각적인 문제를 해결했습니다. –
위대한 답변, 정말 고마워요. – Alexander