• HID:LIST - list arrays

    From digi_cs@cosmogen@gmail.com to comp.lang.awk on Thu Oct 17 08:20:31 2024
    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