RosettaCodeData/Task/Singly-linked-list-Element-insertion/Oforth/singly-linked-list-element-insertion.fth
2023-07-01 13:44:08 -04:00

16 lines
466 B
Forth

Collection Class new: LinkedList(data, mutable next)
LinkedList method: initialize := next := data ;
LinkedList method: data @data ;
LinkedList method: next @next ;
LinkedList method: add(e) e @next LinkedList new := next ;
LinkedList method: forEachNext
dup ifNull: [ drop self ]
dup 1 ifEq: [ drop false return ]
dup next dup ifNull: [ drop 1 ]
swap data true ;
: testLink LinkedList new($A, null) dup add($B) dup add($C) ;
testLink println