RosettaCodeData/Task/Singly-linked-list-Element-insertion/Oforth/singly-linked-list-element-insertion.fth

17 lines
466 B
Forth
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
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