[erlang-questions] ets:match_delete

Anthony Ramine n.oxyde@REDACTED
Tue Jun 7 19:35:21 CEST 2011


Le 7 juin 2011 à 19:26, Anthony Ramine a écrit :

> Le 7 juin 2011 à 19:15, Roberto Ostinelli a écrit :
> 
>> 2011/6/7 Anthony Ramine <nox@REDACTED>
>> 
>> [{{'_','$1','_','_'},[{'>','$1',2}],[]}] should work. You put a list instead of a tuple for the match argument.
>> By the way I didn't read the doc to figure it out, I just did ets:fun2ms(fun ({_,X,_,_}) when X > 2 -> X end),
>> which is pretty good for figuring out how to write matchspecs.
>> 
>> hi anthony,
>> 
>> no this does not work.
>> 
>> furthermore, i took the list format from the 2nd example provided in the docs:
>> http://www.erlang.org/doc/apps/erts/match_spec.html#id71596
>> 
>> thank you anyway :)
>> 
>> r.
> 
> My bad then, ets:match_delete must behave differently than lookup then, because this works:
> 
> 	ets:test_ms({a, 3, b, c}, [{{'_', '$1', '_', '_'},[{'>', '$1', 2}],['it works!']}])
> 

Oh ok I understand, I didn't know what to return in the fun from my ets:fun2ms/1 call. It should have returned true,
thus making the last ms component as [true]. Then you end up with the same thing as Tobias :)

--
Anthony Ramine
Dev:Extend
http://dev-extend.eu







More information about the erlang-questions mailing list