我试图在DETS表上建立一个匹配规范,但我遇到了一些令我困惑的问题。
表条目的结构如下所示:
{'RECORD_KEY','BODY_TUPLE'}
"RECORD_KEY"术语如下所示{shell,T1,T2,T3,T4,T5,T6}
如果我符合规格:
{{' _','_','$1','_','_','_'},'$2'}
ie: dets:match(Ref, {{'_','_','$1','_','_','_'},'$2'} )
我得到了表中的所有条目。但是,现在我尝试向match规范添加一些其他术语,这样我就可以开始像这样添加守卫了:
Terms = {{' _','_','$1','_','_','_'},'$2'},
Gaurds = [],
Returns = ['$1'],
Pattern = [{Terms,Gaurds,Returns}],
Matches = dets:match(Ref, Terms),
即使我将'$1'替换为'$_',它也不会返回任何条目。
我哪里做错了?
1条答案
按热度按时间h5qlskok1#
好吧,我觉得有点傻,实际上我去年用了很多ETS表,我忘了ets:match和ets:select是两个不同的函数,我应该用SELECT的。