The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: John Cowan <cowan@ccil.org>
To: Dave Horsfall <dave@horsfall.org>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: Re: [TUHS] The UNIX Command Language (1976)
Date: Tue, 1 Dec 2020 15:49:50 -0500	[thread overview]
Message-ID: <CAD2gp_Tmr59hi5Khf3efLgSdb0_ce8Vqobmku2R2OdLDYxsnsw@mail.gmail.com> (raw)
In-Reply-To: <alpine.BSF.2.21.9999.2012020710420.85468@aneurin.horsfall.org>

[-- Attachment #1: Type: text/plain, Size: 1705 bytes --]

On Tue, Dec 1, 2020 at 3:14 PM Dave Horsfall <dave@horsfall.org> wrote:


> And then there was the story of Professor Goto (a Japanese citizen and
> computer bod) who complained that everyone was trying to eliminate him :-)
>

But cheerfully so, according to Knuth.  He is also known for the invention
of hash consing.  Knuth's article "Structured programming with goto
statements" <http://www.clifford.at/cfun/cliffdev/p261-knuth.pdf> is a
great discussion of all the reasons you'd want to use goto in languages
with just conditionals and while loops:  error exits, jumping out of nested
tests, jumping out of a nest of conditionals and break/continue (both
essentially kinds of static catch tags), loops iterated n-and-a-half-times
(break will do this, but it's over-powered), tail recursion, "encoding
boolean variables in the program counter", coroutines.  There are also such
things as fast linear search by putting the searched-for value at the end
of the array being searched, and what boils down to Lisp macros ("allowing
an optimizing compiler to express its optimizations in the source
language").

On Tue, Dec 1, 2020 at 3:39 PM Bakul Shah <bakul@iitbombay.org> wrote:


> But I have mixed feelings about goto vs continue/break. A nested
> loop with multiple continue/break can be as obscure.


I think if the loops are labeled rather than the destinations, and you use
"next foo" instead of "continue" and "last foo" instead of "break", it's
all quite readable.



John Cowan          http://vrici.lojban.org/~cowan        cowan@ccil.org
Sir, I quite agree with you, but what are we two against so many?
    --George Bernard Shaw,
         to a man booing at the opening of _Arms and the Man_

[-- Attachment #2: Type: text/html, Size: 3317 bytes --]

  reply	other threads:[~2020-12-01 20:50 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-30  3:10 Joachim via TUHS
2020-11-30  8:30 ` Thomas Paulsen
2020-11-30 13:36 ` Brantley Coile
2020-11-30 15:12   ` Tom Ivar Helbekkmo via TUHS
2020-11-30 15:52 ` Clem Cole
2020-11-30 16:25   ` Dan Cross
2020-11-30 16:38     ` Warner Losh
2020-11-30 16:41       ` Dan Cross
2020-11-30 16:37   ` Larry McVoy
2020-11-30 16:54     ` Clem Cole
2020-11-30 18:13       ` Theodore Y. Ts'o
2020-11-30 18:25       ` John Cowan
2020-11-30 18:37         ` Clem Cole
2020-11-30 20:11           ` arnold
2020-11-30 21:49             ` Will Senn
2020-12-01  2:55             ` Jon Steinhart
2020-11-30 18:46         ` Nemo Nusquam
2021-02-10 20:48       ` [TUHS] troff was not so widely usable (was: The UNIX Command Language (1976)) Greg A. Woods
2021-02-10 21:44         ` Larry McVoy
2021-02-10 22:05         ` Clem Cole
2021-02-11 21:58           ` Greg A. Woods
2021-02-12  5:22             ` George Michaelson
2021-02-12 22:13             ` Dave Horsfall
2021-02-12 22:18               ` Ron Natalie
2021-02-10 22:36         ` Jon Steinhart
2021-02-10 23:05           ` George Michaelson
2021-02-11  0:27             ` Ron Natalie
2021-02-11  0:36               ` Larry McVoy
2021-02-11  1:53               ` Clem Cole
2021-02-11  1:59                 ` Richard Salz
2021-02-11  2:04                   ` George Michaelson
2021-02-11  2:44                     ` Richard Salz
2021-02-11  3:02                       ` Steve Nickolas
2021-02-11  4:07                         ` Toby Thain
2021-02-11 16:55                       ` Ron Natalie
2021-02-11 20:27                         ` John Cowan
2021-02-11  2:30                 ` [TUHS] troff was not so widely usable Mary Ann Horton
2021-02-11  2:52                   ` Larry McVoy
2021-02-11  6:42                     ` Andrew Hume
2021-02-11  7:12                       ` Rob Pike
2021-02-11 13:06                         ` John Gilmore
2021-02-11 17:34                           ` Jon Forrest
2021-02-11 18:09                             ` John Cowan
2021-02-11 18:43                               ` Rich Morin
2020-12-01  3:59 ` [TUHS] The UNIX Command Language (1976) jason-tuhs
2020-12-01  4:03   ` Jon Steinhart
2020-12-01  9:27   ` Steve Nickolas
2020-12-01 15:09   ` Jim Capp
2020-12-01 15:35     ` Toby Thain
2020-12-01 15:38     ` arnold
2020-12-01 16:24       ` Warner Losh
2020-12-01 16:39         ` arnold
2020-12-01 20:13           ` Rob Pike
2020-12-02  7:08             ` arnold
2020-12-02  7:29               ` Rob Pike
2020-12-01 20:20           ` Steffen Nurpmeso
2020-12-01 20:39             ` Bakul Shah
2020-12-01 21:24               ` Dan Cross
2020-12-01 23:44                 ` John Cowan
2020-12-12 19:50           ` scj
2020-12-01 16:47         ` Larry McVoy
2020-12-01 20:13     ` Dave Horsfall
2020-12-01 20:49       ` John Cowan [this message]
2020-12-01 16:04 ` Tyler Adams
     [not found] <CAMP=X_mO9oawUpHGOvgVtwVTgcmvdXAc5vrE_+s3d2NsH+1HgA@mail.gmail.com>
2020-12-01  0:00 ` Joachim via TUHS
2020-12-01  0:21   ` Dave Horsfall
2020-12-01  2:23     ` Larry McVoy
2020-12-01  3:13 Norman Wilson
2020-12-02  0:31 ` George Michaelson
2020-12-02  1:06   ` Adam Thornton
2020-12-02 17:02     ` John Cowan
     [not found] <CAKH6PiWA2uN4m0AGp7VRJTQ6XXDLJQweHoHjx2wN=zQYs1onpA@mail.gmail.com>
2020-12-03 20:31 ` M Douglas McIlroy
2020-12-03 20:37   ` Niklas Karlsson
2020-12-03 20:43     ` Larry McVoy
2020-12-03 20:56       ` Ralph Corderoy
2020-12-03 21:01       ` Ben Walton
2020-12-03 21:12       ` Clem Cole
2020-12-04  0:29       ` Dave Horsfall
2020-12-04  0:43         ` Rob Pike
2020-12-04  0:48           ` Larry McVoy
2020-12-04  1:25           ` Dan Cross
2020-12-04  9:27             ` arnold
2020-12-04 11:33               ` Andy Kosela
2020-12-04 13:14                 ` Tyler Adams
2020-12-04 13:17                   ` Niklas Karlsson
2020-12-04 13:22                     ` Tyler Adams
2020-12-04 13:25                       ` Niklas Karlsson
2020-12-04  0:45         ` George Michaelson
2020-12-04  1:10         ` Bakul Shah
2020-12-04  1:17           ` George Michaelson
2020-12-03 20:51     ` M Douglas McIlroy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAD2gp_Tmr59hi5Khf3efLgSdb0_ce8Vqobmku2R2OdLDYxsnsw@mail.gmail.com \
    --to=cowan@ccil.org \
    --cc=dave@horsfall.org \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).