Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Re: (Golf) Reversal

by japhy (Canon)
on May 02, 2001 at 09:10 UTC ( #77242=note: print w/replies, xml ) Need Help??

in reply to Re: (Golf) Reversal
in thread (Golf) Reversal

Ok. Now come up with an 11-character one that works for non-numbers. ;)
Hint? I'm being a bit of a wise-ass, aren't I? ;)

japhy -- Perl and Regex Hacker

Replies are listed 'Best First'.
Re: Re: Re: (Golf) Reversal
by MeowChow (Vicar) on May 02, 2001 at 10:12 UTC
      Ok, question: What the...??? (I don't doubt that this works, but I've never seen that construct before...)

      Dr. Michael K. Neylon - || "You've left the lens cap of your mind on again, Pinky" - The Brain
        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:
        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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://77242]
[Corion]: ** chore
[Corion]: So I guess I will simply implement the linear scan first and wait with more fancy stuff until it becomes a problem
[karlgoethebier]: Lady_Aleena: ++ for "The Man Crusher Everyday"
[karlgoethebier]: this mad my day
[karlgoethebier]: no typo
[marioroy]: At the Fransiscan monastery, got stuck up high in a tree from pruning and the chainsaw with large branch fell and broke the latter, but not me fortunately. Was stuck there for a while until a firetruck came by.
[Corion]: marioroy: So you live dangerously ...
[Lady_Aleena]: s/latter/ladder/; # ? marioroy
[karlgoethebier]: marioroy: Praise the Lord
[marioroy]: Well, that's why there must be angels around, invisible or not.

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (12)
As of 2017-05-29 08:33 GMT
Find Nodes?
    Voting Booth?