Larry Wall wrote:
Another possibility is to take $? away from the compiler.  All the
compiler variables could go under $= instead, since pod is actually
just one particular kind of compiler-time data, and there's really
no particular mnemonic relationship between ? and the compiler.
But $?foo is harder to type than $!foo.  Maybe we hold $?foo in
reserve for some other kind of attribute scope.

Well, I would like to see a very deep running opportunistic ? and
existential ! markup. That is

      quest- *in*
*ex* -pect

That would make $? the natural choice for the INvocant like $!
is the EXception. In multi methods the invocants would naturally
be aliased to @?, then.

Perhaps this also gives the in/ex ?/! equivalence we are searching
syntactically. I mean the the 'in' prefix is partly a negative and
partly a positive prefix in many latin derived english words. So,
we drop 'true' and use 'in' or 'inex' to complement 'not' as the
loose precedence booleanizer.

And the rest falls in beautifully

  $*  global (infinitely outer env)
  $+  one step out and then outwards env

BTW, how is the lazy flattening op disambuated?

  $x = *foo 1,2,3;  #1 call global foo on 1,2,3; or
                    #2 flatten return values of foo into 1,2,3; ?

I would like to disambiguate as

  $x = &*foo 1,2,3; # global call, same as *::foo 1,2,3;
  $x = *&foo 1,2,3; # flatten result
  $x = * foo 1,2,3; # unary prefix a bit ugly, but OK.

Reply via email to