> 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