http://www.perlmonks.org?node_id=288099


in reply to Re: $a++ allowed by $a-- is not ! why?
in thread $a++ allowed by $a-- is not ! why?

(what the correct name for this? commutable?).
commutativity involves only one operation.
$a + $b = $b + $a
and at least two operands which get "permuted". thus, it is pointless to ask for commutativity of an unary operation.

the problem is, ++ is not surjective.
or can you find a value for $z so that ++ $z is "Aa0"? no, you can't:
kabel@linux:~> perl my ($z1, $z2) = qw/ z9 Z9 /; print ++ $z1, ", ", ++ $z2, $/; aa0, AA0 kabel@linux:~>
thus, ++ does not have any reverse mapping at all.
but if we only allow either lower case or upper case (not both mixed), the problem nearly disappears:
++: /\A[A-Z]*[0-9]*\z/ -> /\A[A-Z]*[0-9]*\z/ ++: /\A[a-z]*[0-9]*\z/ -> /\A[a-z]*[0-9]*\z/
a problem is that "0" has no preimage.
or can you find a value for $z so that ++ $z is "0"? no, you can't. ;D

HTH hehe, finally i was able to apply some knowledge of last years mathematics. hopefully, i am correct. :-)