Michael G Schwern wrote:
> Binary ; > > This worries me. Giving ; two meanings makes basic language parsing > harder, which would be fine if there was a big payoff, but there's > not. Just making shorthand for [[1,2,3],[4,5,6]] doesn't seem worth > it. What am I missing here? What you might be missing here (or what I might be improperly getting here) is that a good way to implement this sort of thing is with an exception handling parser. The end-of-statement-while-brackets-are-open error can be trapped and turned into More Useful Syntax. Alternately, semicolon only means statement-end when all brackets are balanced. Suddenly we have more syntax to play with: an easy-to-find separator is no longer pinned into its one role as statement terminator, to use a chess metaphor. The list-of-lists is an example of what can be done; it is not the point of the innovation. Things like syntaces for declaring your named arguments come to mind as a more intense use of this feature. I am not caught up with the state of the art enough to produce a compliant example at this time. > Binary // > > The analogy to || is probably a bit too clever. My first reaction > was it's some sort of weird division operator. But it's servicable. It echoes the switch from | to / within the IETF RFC syntax declaration language. Apparently the global keyboard steering committee has deprecated the vertical bar. > 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? I am not Damian, but I'll try: The feature is not, IMO, big enough to warrant giving it the really-big-sounding name "hyperoperator" but it is as good as any and no other (?) language has it at this particular level of explicitness (overloads on C++ container classes notwithstanding.) There is no way to disambiguate the do-once case from the do-for-each case without some syntax of some kind, so hat-operator is pressed into the role. I suppose descent into LoL and attitude towards multidim is up to the operator getting hyperized -- that is a point for regularization of some kind, cultural if not linguistic. > Backtracking: > > Ok, I don't get it at all. Damian, clarification? Me neither. I had thought that backtracking dealt with remembering one's side effects so they could be unwound. The RFC in question was completely incomprehensible to me as well, and possibly written by someone who was not aware that Perl's logical operators short-circuit by definition. What am I missing?