Now that Larry has spoken on the issue of vocabulary, it's lexicanonical.

On Fri, Sep 14, 2018 at 12:49 PM Larry Wall <la...@wall.org> wrote:

> On Fri, Sep 14, 2018 at 04:15:02AM -0700, Todd Chester wrote:
> : Also, did you answer my question about "::" and did it
> : just go over my head?
>
> The implication was that "::" didn't change, but the default package
> scoping of p5 that you're relying on is no longer the default in p6.
>
> : The p5 guys use to tell me "its lexiconical", meaning it was figured
> : out on the fly.  (Took me forever to catch on.)  Is that any
> : relation to your use of the word "lexical"?
>
> I would like to see a citation of this use of the word "lexiconical".
> In the first place, the word "lexiconical" has not been used in
> perl5-porters in living memory, and if had been used there, it is
> unlikely to have meant "figured out on the fly".
>
> : https://www.dictionary.com/browse/lexical?s=t
> :
> :    adjective
> :
> :    of or relating to the words or vocabulary of a language,
> :    especially as distinguished from its grammatical and
> :    syntactical aspects.
> :
> :    of, relating to, or of the nature of a lexicon.
>
> The relationship of lexicons to lexical scoping here is a bit tenuous,
> but it goes something like this: Every scope in your program can define
> things local to that scope.  When a scope does define something, it's
> creating a new lexicon of terms, like a private lingo or patois for a
> given workplace that no other workplace will understand.  It is that
> set of private definitions (overlaid on all the definitions pulled in
> from larger scopes) that functions as a "dictionary" here.
>
> So when people say "lexically scoped", they mean there are multiple
> lexicons,
> and each symbol is looked in the nearest one that actually has a definition
> for the term.  The whole point of "scoping" is to decide what is near, and
> what is far.
>
> So, for instance, you may have worked in a workplace or participated
> in a forum where the local lexicon of the "p5 guys" contained the
> word "lexiconical" with some kind of idiosyncratic meaning involving
> dynamic lookup.  That term is not used in the larger p5 culture that
> way, so people outside that workplace or forum will not understand that
> idiosyncratic definition of "lexiconical", which seems to have nothing
> whatsoever to do with lexicons.
>
> Lexical scoping is not figured out on the fly; it's figured out while the
> code is compiling.  You can have delayed compilation when you eval a
> string,
> of course, but then the fact that the lexical lookups are delayed is not
> a special feature of the lexicon; everything related to the compiler is
> delayed when you eval.  "Figured out on the fly" is a feature of eval, not
> of lexicons.
>
> Now, all that being said, in p5 subroutines are looked up in packages,
> and packages are modifiable, so we do have to discover what to call "on
> the fly" in that case.  But in p5 culture we never refer to packages as
> lexicons because that would confuse people.
>
> In Perl 6 culture we never mix them up either, but we also never put subs
> into packages by default.  The reason Foo::bar notation doesn't work is
> because bar isn't in Foo anymore unless you explicitly put it there.
>
> Larry
>

Reply via email to