I still feel this adds yet another layer of inconsistency and confusion. I can't look at a piece of code and know what it does, without referring up N lines to the top of the scripts.
How is the infinite loop problem any different from other Halting problems? Karl Christian Soeller wrote: > Trey Harris wrote: > >> Yes. This is my fear of hyperoperation being the default for normal >> aggregates. Loops--and large, multiply-nested, potentially-infinite >> ones--can spring out of code that doesn't look loopy at all. Erm... you >> know what I mean. :-) >> >> Karl, do you have any objection to marking aggregates for which >> hyperoperation is to be the default? Then you could say: >> >> my <mumble> @foo, @bar; # Are the parens required in p6? >> # or >> my (@foo, @bar) is <mumble>; # Can you distribute properties? >> <...> >> @foo += @bar; >> >> where <mumble> is matrix, hyper, or something along those lines (choosing >> great names is Larry, Damian and Allison's jobs, not mine :-) >> >> If we simply made such hyperoperated aggregates builtins rather than >> requiring user-defined classes, this would offer a compromise, would it >> not? > > > This is a good compromise. The numerics person might even be able to say: > > use default => hyperops; # somewhere at the top of your script > @res = @foo * sqrt(@bar); > > while brent and others can do their CGI scripts without having to wait > for the end of the known Perl universe. > >