> Hyperoperators:
   > 
   > I sort of understand it, but don't really grok it.  I can sort of
   > thing of ways it might eliminate the need for a few maps and
   > foreaches.  Damian, might I request some clarification in Exogenesis?

Well, I'll probably clarify them in Exegesis instead.
"External birth" would seem a bit extreme here. ;-)

   
   > Polymorphic comparisons:
   > 
   > I'm firmly with Larry here.  I have oogy feelings about $foo == $bar
   > doing different things depending on the value of $foo and $bar.  I'm
   > also a more than a little afraid at what 42 == "forty-two" should do.

It's no longer a problem. Multiway comparisons and NaN-ification on
numerified non-numeric strings fix it. See Exegisis 3 tomorrow.

   
   > Backtracking:
   > 
   > Ok, I don't get it at all.  Damian, clarification?

Nothing to clarify. Larry punted (to a later Apocalypse).

Okay. That's a cop-out. He's basically saying that you can write
C<andthen> and C<orthen> yourself as:

        my sub operator:andthen is prec(\&operator:and) (&block1, &block2) {
                while (block1()) {
                        return 1 if block2();
                }
                return 0;
        }

        my sub operator:orthen is prec(\&operator:or) (&block1, &block2) {
                while (1) {
                        return 1 if block1();
                        return 1 if block2();
                }
        }

but that it would be better if C<block1>'s lexical scope were preserved
until the outcome of C<block2> is known.

Larry has a marvellous proof of this (involving continuations), but as there
wasn't enough room in the margin of this Apocalypse to explain it, he'll
be doing so in a later design document.

;-)

Damian

Reply via email to