From Newsgroup: comp.lang.awk
Hello!
FYI
@include “github.com/digics/UID10/uid.lib”
LIST = hid::get( “LIST” )
An array (A) in AWK can represent a list of unique items with an undefined order.
To introduce the concept of an array with a defined sequence of its indexes (items),
we need to specify this sequence in a subarray A[LIST] as a simple list:
The element A[ LIST ][ "" ] stores the index of the first item in the list:
# items of A: first, next and last:
A[ “LIST” ][ “” ] = “first”
[ “first” ] = “next”
[ “next” ] = “last”
[ “last” [ = “”
[ “first” ]...
[ “next” ]...
[ “last” ]...
Thus, instead of a for-in loop for array A, we use:
i = “”
while ( “” != i = A[ LIST][ i ] )
# process A[ i ]
or
for ( i = “”; “” != i = A[ LIST ][ i ]; )
# process A[ i ]
At the same time, we can still work with the main array in a for-in loop — with one caveat:
for ( i in A )
if ( i in HID )
continue # this is hid (LIST)
else
# process A[ i ]
In case a bidirectional list is needed, another subarray A[LIST][LIST] is created
within the subarray A[LIST], where the items are listed in reverse order,
and the element A[LIST][LIST][""] stores the index of the last item in the list.
best regards)
--------------= Posted using GrabIt =----------------
------= Binary Usenet downloading made easy =---------
-= Get GrabIt for free from
https://www.shemes.com/ =-
--- Synchronet 3.20a-Linux NewsLink 1.114