beneroth changed the topic of #picolisp to: PicoLisp language | The scalpel of software development | Channel Log: https://libera.irclog.whitequark.org/picolisp | Check www.picolisp.com for more information
<user3456> I'm trying to wrap my head around how NIL works
<user3456> the reference says it has a special structure of 'LIN' | / | / | /
<user3456> I understand how it fulfills the symbol properties (VAL points to nil, property list is immediately terminated with the number name)
<user3456> I also understand how its CDR is NIL, but I don't see how the CAR is NIL; 'LIN' is a short number which means it's not the empty list nor is it a symbol
<user3456> (I'm interpreting / to be a pair that points to the first cell's CAR)
f[x] has joined #picolisp
f[x] has quit [Remote host closed the connection]
<abu[7]> The pointer to the symbol points to the middle of the cell (an offset of 8 bytes) so that the pointer has the proper tag bit. The 'car' and 'val' functions just dereferece the pointer, returning the value in the CDR part of that cell
<abu[7]> To access the symbol's TAIL, the pointer with an offset -8 must be used
gahr has quit [Remote host closed the connection]
gahr has joined #picolisp
lagash has quit [Ping timeout: 260 seconds]
f8l has joined #picolisp
lagash has joined #picolisp
bjorkint0sh has joined #picolisp
bjorkintosh has quit [Ping timeout: 276 seconds]
f[x] has joined #picolisp
f8l has quit [Ping timeout: 260 seconds]
fbytez has quit [Ping timeout: 252 seconds]
fbytez_ has joined #picolisp
f[x] has quit [Remote host closed the connection]