2011-06-26 37 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