Re: printing words without newlines?

Liste des GroupesRevenir à cl awk 
Sujet : Re: printing words without newlines?
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : alt.comp.lang.awk comp.lang.awk
Date : 14. May 2024, 00:33:07
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240513162301.128@kylheku.com>
References : 1 2 3
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-05-13, Kenny McCormack <gazelle@shell.xmission.com> wrote:
In article <20240513100418.652@kylheku.com>,
Kaz Kylheku  <643-408-1753@kylheku.com> wrote:
...
(This version more complicated than it needs to be, but essentially the
same as what I posted earlier)
$ awk '{
 if ($1 > max) max = $1;
 rank[$1] = $2
}
>
END {
 for (i = 1; i <= max; i++)
   if (i in rank) {
     printf("%s%s", sep, rank[i]);
     sep = " "
   }
 print ""
}' data.txt
all your base are belong to us
>
We do not perform any sort, and so we don't require GNU extensions. Sorting is
>
But GNU extensions are good - especially since OP specifically mentioned
using GAWK.  And much more on-topic than Lisp (et al).

The above performs O(N) steps, whereas sorting is O(N log N),
and sometimes worse due to degenerate cases in some algorithms.

Why use an extension that only makes the program more verbose and brings
in an unnecessary algorithm.

Final note: In fact, it has been established (on this newsgroup as well as
empirically by me and others) that if the indices are small integers, you
get sorting for free (in GAWK, which, as noted, is all we care about).  So,
you don't even really need to mess with PROCINFO[]...

Are you referring to the idea of just replacing the above for + if
structure with:

  for (i in rank) {

  }

and relying on the small integer indices being hashed in order?

Where is that documented? The manual reiterates that this is not
specified: "By default, the order in which a ‘for (indx in array)’ loop
scans an array is not defined; it is generally based upon the internal
implementation of arrays inside awk."

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca

Date Sujet#  Auteur
12 May 24 * printing words without newlines?19David Chmelik
12 May 24 +* Re: printing words without newlines?5Bruce Horrocks
12 May 24 i+- Re: printing words without newlines?1Bruce Horrocks
12 May 24 i`* Re: printing words without newlines?3Kenny McCormack
13 May 24 i +- Re: printing words without newlines?1David Chmelik
13 May 24 i `- Re: printing words without newlines?1Kaz Kylheku
13 May 24 +* Re: printing words without newlines?3Kenny McCormack
13 May 24 i`* Re: printing words without newlines?2Kenny McCormack
15 Jul 24 i `- Resurrecting an old thread (Was: printing words without newlines?)1Kenny McCormack
13 May 24 +- Re: printing words without newlines?1Janis Papanagnou
13 May 24 +* Re: printing words without newlines?4Kaz Kylheku
13 May 24 i`* Re: printing words without newlines?3Kenny McCormack
14 May 24 i `* Re: printing words without newlines?2Kaz Kylheku
14 May 24 i  `- Array indices are small integers? (Was: printing words without newlines?)1Kenny McCormack
16 May 24 `* Re: printing words without newlines?5Ed Morton
16 May 24  `* Re: printing words without newlines?4Janis Papanagnou
16 May 24   +* Once upon a time... (Was: printing words without newlines?)2Kenny McCormack
16 May 24   i`- Re: Once upon a time... (Was: printing words without newlines?)1Kenny McCormack
17 May 24   `- Re: printing words without newlines?1Ed Morton

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal