HaloO,
Brent 'Dax' Royal-Gordon wrote:
Steve Peters <[EMAIL PROTECTED]> wrote:
~ seems to be available for a sigil, if my reading of S02 is correct, and
the cent sign is replacing :: in all cases. If not (that is $::foo is
still the global variable named foo) then * may also be available.
Sigils can't conflict with unary operators (like, say, the
stringification and flattening operators, ~ and *) and ideally
shouldn't conflict with binary ops either (although % breaks this
rule).
My 2ยข is that we should reap ^ from the one junction and promote it to
become the 'runtime type information carrier' sigil---like the wings
on the feet of Hermes/Mercury :)
And we should find an alternative to binary % which isn't very well
defined in it's abstract meaning---but I find that the 0/0 connotation
that it spawns in my infinitly twisted brain matches nicely with infinite
precision nums and I get the identities:
Undef ::= 0/0;
One ::= Any/Any # actually $x = any(1..Inf) && 1 == $x/$x
Inf ::= Inf/Inf # the other Undef :)
Type ::= All # the concept that is shared by all instances
# and represented by the one meta representative
and of course some mixed cases like
0 ::= 0/Any
Inf ::= Any/0
The none junction hasn't one single char infix creator either. Also the
all junction is in partial conflict with the & sigil. OTOH, many fear
that junctive auto-threading enters their functions. And the junctions
have got very well picked short names.
In other words a comparison like
if $x != $x { ... }
should *never* hit the nada operator. While
if &x != &x { ... }
could depending on the evaluation of the code &x refers to.
--
$TSa.greeting := "HaloO"; # mind the echo!