Thanks Alex, Another clarification - I was looking at the implementation of consName
After this assignment, p points to the CDR of the cell - p = symPtr(p); However, this assignment assigns to ((p)->car) val(p) = n; I figured out what's happening is equivalent of *(word*)p = val?:p; I got a little tripped by the definition of val - because "p" is really not a Cell pointer after the symPtr assignment right? I mean, p->cdr is invalid at this point correct? Regards, Kashyap On Sat, Mar 9, 2019 at 10:54 PM Alexander Burger <a...@software-lab.de> wrote: > Hi Kashyap, > > > am curious though ... how's hash table implemented without array? > > We are talking here about C and Java. In pil32 it *is* an array > > any Intern[IHASH], Transient[IHASH], Extern[EHASH]; > > and in Ersatz it is a HashMap > > final static HashMap<String,Symbol> Intern = new > HashMap<String,Symbol>(); > final static HashMap<String,Symbol> Transient = new > HashMap<String,Symbol>(); > > - Alex > > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe >