当 2 个哈希匹配时用单词解释是很复杂的,因此,请参见示例:哈希模式存储在如下列表中:(我使用 JavaScript 表示)
pattern:[
0:{type:'circle', radius:function(n){ return n>10; }},
1:{type:'circle', radius:function(n){ return n==2; }},
2:{type:'circle', color:'blue', radius:5},
... etc]
var test = {type:'circle', radius:12};
test 应该与模式 0 匹配,因为 pattern[0].type==test.type && pattern.radius(test.radius)==true。
因此,尝试使用单词时,如果哈希的每个值都等于模式的值,或者在作为函数应用时返回 true,则哈希匹配模式。
我的问题是:是否有一种算法可以在不测试所有模式的情况下找到与某个哈希匹配的所有模式?