[DGD]removing elements from mappings

Erwin Harte harte at xs4all.nl
Fri Dec 15 00:15:51 CET 2000


On Thu, Dec 14, 2000 at 11:35:25PM +0100, Boris J wrote:
> Hello !
> 
> I wondering what is the proper way of removing elements (indices/values)
> from a mapping in DGD ?

Several ways.

> Shouldn't this work:
> 
>     foo_mapping -= bar_indices;
> 
> which would remove 'bar_indices' indice and it's value from the
> 'foo_mapping' mapping ?

Yes:

  mapping m;

  m = ([ 1: 2 ]);
  m = m - ({ 1 });

  m is now ([ ])

This does the same thing:

  m -= ({ 1 });

> I discovered also that setting value of an indice to 'nil', e.g.
> 
>     foo_mapping[bar_indices] = nil;
> 
> makes the 'bar_indices' entry to disappear from the mapping. Does this mean 
> that it's impossible to store nil values in DGD mappings, or is it a 
> configurable option ? ( Like changing 'typechecking' in driver config file
> or something... )

Assigning a nil value to an index is another way of removing an
index:value pair from a mapping.  Correct.  If you want to use nil
anyway, you could for instance use 1-sized arrays instead of the
actual values.

The only effect the typechecking option has is that for values 0 and 1
you can accomplish the same thing using 0 instead of nil (more to the
point, nil _is_ 0 in those situations).

Hope that helps,

Erwin.
-- 
Erwin Harte         :    `Don't mind Erwin, he gets crabby. :)'
harte at xs4all.nl     :       -- Par Winzell <zell at skotos.net>

List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list