2011-06-26 36 views
8

我有這行代碼這給在主題行中所述的錯誤:F# - 一種參數缺少約束時,「K:比較

type trie<'k,'a> = TNode of ('a option * Map<'k,('k,'a) trie>) 

我試着插入「當k:比較「我想盡一切辦法無濟於事。我只能用一個通用參數找到這個例子,而不是兩個。

由於提前,

鮑勃

回答

5

試試這個:

type trie<'k,'a when 'k : comparison> = TNode of ('a option * Map<'k,trie<'k,'a>>) 
+0

我嘗試了「k之後添加約束時,我無法相信我錯過了這個可能性。你總是讓這個東西看起來很容易kvb。 :) – Beaker

+0

@Beaker - 很高興幫助。由於約束只會影響''k',所以很容易嘗試將其放在那裏,但通用約束總是出現在整個泛型參數列表之後 - 請參閱http://msdn.microsoft.com/zh-cn/library/dd233203.aspx 。 – kvb