Singly-linked list/Element definition: Difference between revisions

Content deleted Content added
m →‎[[E]]: Split off Forth section
Line 85:
==[[Forth]]==
[[Category:Forth]]
 
Forth has no "struct" facility, but you can easily implement a single linked list with a data cell using a double-cell value.
 
: >cell-link ( a -- a ) ;
: >cell-data ( a -- b ) cell+ ;
 
As an example of usage, here is a word to link 'a' after 'b'
 
: chain ( a b -- ) \ links 'a' after 'b'
over >r
dup >cell-link @ r> >cell-link ! \ a points at b's old link
>cell-link ! ;
 
Or with named parameters:
 
: chain { a b -- }
b >cell-link @ a >cell-link !
a b >cell-link ! ;
 
Due to Forth's lack of typechecking, 'b' in the above examples does not have to be an actual cell, but can instead be the head pointer of the list.