From: "David J. Fiander" <david@golem.uucp>
To: Chris Siebenmann <cks@hawkwind.utcs.toronto.edu>
Cc: rc@archone.tamu.edu
Subject: Re: how would you do this in rc
Date: Fri, 20 Dec 1991 06:21:09 -0600 [thread overview]
Message-ID: <7071.693231669@golem.UUCP> (raw)
In-Reply-To: Your message of "Thu, 19 Dec 91 19:09:33 EST." <91Dec19.190941est.2742@hawkwind.utcs.toronto.edu>
>From: Chris Siebenmann <hawkwind.utcs.toronto.edu!cks@rutgers.uucp>
> You have a list l and a string s. What's the most efficient way to not
>merely find out if s exists in l, but to find its index in l if it does?
>Is there an efficient method to do this? If there isn't, should there be? :)
>[probably not; rc is not a general programming language, after all.]
I'd go with the obvious implementation, unless it is a
bottleneck.
i = 0
if (~ $s $l) {
# if s is a member of l, then s matches an elt.
i = 1 while (!~ $s $l($i)) {
i = `{expr $i + 1}
}
}
At the end of the loop (i == 0) if s is not a member,
otherwise, i == the offset. If you wanted to avoid the expr
overhead, and use byron's 'break' feature, then you could say
for (i in `{seq $#l}) ...
- David
next prev parent reply other threads:[~1991-12-20 15:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1991-12-20 0:09 Chris Siebenmann
1991-12-20 1:11 ` DaviD W. Sanderson
1991-12-20 12:21 ` David J. Fiander [this message]
1991-12-20 1:27 Tom Culliton x2278
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=7071.693231669@golem.UUCP \
--to=david@golem.uucp \
--cc=cks@hawkwind.utcs.toronto.edu \
--cc=rc@archone.tamu.edu \
/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).