Bengt Kleberg eleberg@REDACTED
Thu Oct 25 07:41:06 CEST 2001

> Date: Wed, 24 Oct 2001 16:35:14 -0700
> From: Erik Pearson <erik@REDACTED>

> However, this seems at first blush inefficient and cumbersome. Is this 
> true? Perhaps atoms are stored very efficiently? (Of course, the tag 
> atoms could be made shorter as well)

Atoms are stored efficiently.
Atoms use the same space independent upon their length.

> It seems to me that the one solution would be a new disjoint datatype 
> which represents the null value, and which has only one value "null". 
> The null value could be assigned by a primitive null(), values could be 
> tested for nullness with null(Value), and could be stored efficiently.

It would still be impossible to know if you have stored 'null' in the database 
or if you only want to show that this location is empty.

There are (atleast) 2 ways of doing it:
1 Settle upon something (small) that you will never want to store (say: 
undefined, nil, null, false, [], ...) and use this to indicate an empty 
2 Use the scheme you suggested ({value, Value}|undefined) since that way you can 
differentiate between having stored undefined ({value, undefined}) and having an 
empty location (undefined).


More information about the erlang-questions mailing list