Dave Whipp wrote: > Jon Lang wrote: > >> So you're suggesting that >> >> A op* n >> >> should map to >> >> [op] A xx n >> > > I don't think that that mapping works for Thomas' proposal of a repetition > count on post-increment operator. I.e. > > $a ++* 3 > > is not the same as > > [++] $a xx 3 > > (which I think is a syntax error)
It is. > Also, he's suggesting getting rid of the "xx" operator, and replacing it > with ",*" -- I'm sure I could get used to that > Currently, it's being assumed that the repetition meta-operator will be appended to the operator, followed by the repetition count: $value op* $count This makes it difficult to apply the replication meta-operator to a prefix operator. However, a second option could be provided, where the meta-operator gets prepended: $count *op $value So: 5 *, $n === $n ,* 5 === $n, $n, $n, $n, $n $n ++* 5 === (((($n++)++)++)++)++ 5 *++ $n === ++(++(++(++(++$n)))) And obviously the metaoperator is nonsensical when applied to a binary operator with different types of values on its left and right sides. As with other meta-operators, it should be possible to explicitly define a symbol that would otherwise be interpreted as a meta'd operator, because of efficiency; because the operator in question has capabilities above and beyond what the meta-operator would indicate; or because the operator in question doesn't bear any resemblance to the replicated use of a shorter operator. In particular, ** would be overloaded in this manner: to make reasonable sense, the count of a repetition meta-operator must be an unsigned integer of some sort, whereas exponents can be any type of number. Heck, they don't even have to be real. -- Jonathan "Dataweaver" Lang