Hello fwp'ers,

Here's a golfish problem that I thought some people might enjoy:

What is the shortest way to test a variable for truth and then set its
value to false such that the truth test still succeeds?

For example, I have a global variable $a (given) that is somehow set
to true. I want to test it for truth and do something:

    <snip>
    $a = 1;
    
    ...
    
    if( $a ) {
        $a = 0;
        do_something();
    }

    ## and now $a is false
    ...
    </snip>

You can't do this:

    if( $a = $a ? 0 : $a ) {
        do_something();
        ...
    }

because the whole expression becomes false when $a is assigned 0.

My shortest try is this (10 characters w/o whitespace):

    if( $a%2 .. $a-- ) {
        do_something();
        ...
    }

Assuming warnings and stricture, can anyone find a shorter
test/assignment? It doesn't have to be numeric (i.e., bit strings or
any true/false values will work).

Good luck!

Scott
-- 
Scott Wiersdorf
[EMAIL PROTECTED]

Reply via email to