new syntax - a provocation

Richard A. O'Keefe <>
Fri Sep 26 01:51:36 CEST 2003


Joe Armstrong <> wrote:
	  For example, for  dynamic XML manipulations I dare  not represent an
	XML parse tree as.
	
	 {AtomTag, [Attr], [Child]} 
	
	 But have to use the horrible form
	
	 {String, [Attr], [Child]}
	
	 For fear that one day the atom table will explode :-)
	
I note that SWI Prolog _does_ use atoms for this purpose, even when
processing _huge_ RDF files.  What's more, SWI Prolog uses atoms for
#PCDATA leaves.

Perhaps I should also point to the "logix" implementation
of Flat Concurrent Prolog.  I never actually looked inside, but
my understanding was that atoms were implemented basically as free-
floating strings, with the added wrinkle that if two atoms were
compared and found to be equal, references to one were changed to
be references to the other.  (Just _which_ references and just _how_
they were found escape my memory.  I thought I had a copy of logix
on an old file system, but it was a shell script pointing to an
installation in Melbourne.)



More information about the erlang-questions mailing list