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};
pattern[0].type==test.type && pattern.radius(test.radius)==true であるため、test はパターン 0 と一致する必要があります。
したがって、単語で試してみると、すべての値がパターンの値と等しいか、関数として適用されたときに true を返す場合、ハッシュはパターンに一致します。
私の質問は: 特定のハッシュに一致するすべてのパターンをすべてテストせずに見つけるアルゴリズムはありますか?