Ok, question: What the...??? (I don't doubt that this works, but I've never seen that construct before...)
Dr. Michael K. Neylon - mneylon-pm@masemware.com
||
"You've left the lens cap of your mind on again, Pinky" - The Brain
| [reply] [Watch: Dir/Any] |
I'll explain it in the black box so that no one reads anything
they don't want to see. :)
All you need to do to solve the original problem is do a reverse
on the array in *scalar context*. Because in scalar context,
reverse concatenates its arguments, then reverses that new
strong. For example, this would solve the original problem:
sub R { scalar reverse @_ }
Given the following invocation:
R(65,43,21);
that would return the string '123456', because the args are
first concatenated into '654321', then that string is reversed
by reverse.
The problem with using scalar is that this is golf, and scalar
is too long.
So perhaps you see where this is going, now--the key is to
get reverse into scalar context with as few keystrokes as
possible, and to have it work on strings as well as numbers.
To do this, you can use the bitwise negation operator '~', which
(if you read perlop) also works on strings. Just negate the
string twice, and you have the original string; and the operator
puts reverse into scalar context.
And you're done.
|
As always, if I've got anything wrong, please correct me.
| [reply] [Watch: Dir/Any] [d/l] [select] |