Re: One last chapter to review! Last chance! One-day only!

From: Pascal Bourguignon (spam_at_mouse-potato.com)
Date: 03/11/05


Date: 11 Mar 2005 00:27:23 +0100

Kent M Pitman <pitman@nhplace.com> writes:

> David Steuber <david@david-steuber.com> writes:
>
> > rydis (Martin Rydstr|m) @CD.Chalmers.SE writes:
> >
> > > > What strikes as perverse is to write code that depends upon the
> > > > order of argument evaluation.
> > >
> > > Not when that order is specified (in the language or the
> > > implementation). Why would it be?
> >
> > I was sort of wondering the same thing. Isn't something like:
> >
> > (if (foo) (bar) (baz))
> >
> > rather dependent on the order of evaluation?
>
> I think the flaw happens when people learn one language by assuming its
> definition is a dependent on the other. They are constantly afraid that
> the [imagined] "truth" will suddenly out.
>
> When I worked as Project Editor on ISO ISLISP, some in the German
> group would veritably panic if I wrote "... will ..." and INSISTED
> that I should change "will" to "shall". "What's the difference?" I
> would ask. "They mean the same thing." Some time later, I was making
> an abortive attempt to learn German, and I found out that in German,
> "will" does not have the sense of certainty that it does in English.
> I suddenly understood the source of their apprehension. (I guess they
> assumed that since English probably got this word from German, we must
> have taken the meaning with it, though we didn't. They had likely
> been fearing a phantom capability of change in English that wasn't
> really there. If you think of English as some kind of bastardized
> German, then you'd easily worry that the truth about the Real Meaning
> would somehow eventually come out. If you think of English as a first
> class language in its own right, it's harder to make this mistake.)
> [...]

Well, standards, and in particular RFC usually use SHALL instead of
WILL. I've allways felt the nuance, and indeed, shall sounds more
committing. Perhaps British English is still influenced by its German
origins. (I learned _British_ English as second language, American
English comes only 5th or 6th :-).

But on the other hand, since WILL is not used in the RFCs, it may be
because it's strictly equivalent to SHALL...

>From RFC2822:

2.3 Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described below.

   1. MUST This word, or the terms "REQUIRED" or "SHALL", mean that
      the definition is an absolute requirement of the specification.

   2. MUST NOT This phrase, or the phrase "SHALL NOT", mean that the
      definition is an absolute prohibition of the specification.

   3. SHOULD This word, or the adjective "RECOMMENDED", mean that
      there may exist valid reasons in particular circumstances to
      ignore a particular item, but the full implications must be
      understood and carefully weighed before choosing a different
      course.

   4. SHOULD NOT This phrase, or the phrase "NOT RECOMMENDED" mean
      that there may exist valid reasons in particular circumstances
      when the particular behavior is acceptable or even useful, but the
      full implications should be understood and the case carefully
      weighed before implementing any behavior described with this
      label.

   5. MAY This word, or the adjective "OPTIONAL", mean that an item is
      truly optional. One vendor may choose to include the item because
      a particular marketplace requires it or because the vendor feels
      that it enhances the product while another vendor may omit the
      same item. An implementation which does not include a particular
      option MUST be prepared to interoperate with another
      implementation which does include the option, though perhaps with
      reduced functionality. In the same vein an implementation which
      does include a particular option MUST be prepared to interoperate
      with another implementation which does not include the option
      (except, of course, for the feature the option provides.)

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
I need a new toy.
Tail of black dog keeps good time.
Pounce! Good dog! Good dog!