Erlang (programming language)/Tutorials/ETS: Difference between revisions
imported>Chris Day No edit summary |
imported>Eric Evers |
||
Line 46: | Line 46: | ||
% next '$end_of_table' | % next '$end_of_table' | ||
% [[mini],[micky]] | % [[mini],[micky]] | ||
Advanced options | |||
There are a number of options for ets data. | |||
Data structure options include: | |||
set, ordered set, bag, and duplicate bag. | |||
A set has only unique keys and values. An sorted version of set. A bag can have duplicate keys. A duplicate bag can have duplicate keys and values. | |||
Access options include: | |||
private, protected, and public. |
Revision as of 08:24, 27 June 2008
The metadata subpage is missing. You can start it via filling in this form or by following the instructions that come up after clicking on the [show] link to the right. | |||
---|---|---|---|
|
ETS local data storage
ETS is the erlang table storage system, which provides hash storage and access functions. ETS data is stored in a process as long as it is running. Here is a sample of how to use some simple functions in ETS
Sample program: test_ets.erl
-module(test_ets). -compile(export_all). start() -> start( mouse ). start( Animal ) -> Kingdom = ets:new( 'magic', [] ), % note: table is not square populate( Kingdom, [{micky,mouse}, {mini,mouse}, {goofy}] ), Member = ets:member( Kingdom, micky ), io:format( " member ~w ~n ", [ Member ] ), show_next_key( Kingdom, micky ), find_animal( Kingdom, Animal ). show_next_key( _Kingdom, '$end_of_table' ) -> done; show_next_key( Kingdom, Key) -> Next = ets:next( Kingdom, Key ), io:format( " next ~w ~n ", [ Next ] ), show_next_key( Kingdom, Next ). populate( _Kingdom, [] ) -> {done,start}; populate( Kingdom, [H | T] ) -> ets:insert( Kingdom, H ), populate( Kingdom, T ). find_animal( Kingdom, Animal ) -> ets:match( Kingdom, { '$1', Animal } ).
% ============== % sample output % ============== % 53> test_ets:start(). % member true % next mini % next goofy % next '$end_of_table' % [[mini],[micky]]
Advanced options
There are a number of options for ets data.
Data structure options include: set, ordered set, bag, and duplicate bag. A set has only unique keys and values. An sorted version of set. A bag can have duplicate keys. A duplicate bag can have duplicate keys and values.
Access options include: private, protected, and public.