• 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