On 2011-02-11 08:39, Jim wrote:
Jacob Carlborg Wrote:

On 2011-02-10 20:15, Walter Bright wrote:
Nick Sabalausky wrote:
"bearophile"<bearophileh...@lycos.com>  wrote in message
news:iivb5n$na3$1...@digitalmars.com...
auto x;
if (localtime().hours>= 8) {
x = "awake!"
} else {
x = "asleep, go away."
}
log "I'm " + x;


That would be really nice to have in D.


auto x = (localtime().hours>= 8) ? "awake!" : "asleep, go away.";

For this simple if statement it works but as soon you have a few lines
in the if statement it will become really ugly. But one could wrap the
if statement in a function instead. In other languages where statements
really are expressions this works:

auto x = if (localtime().hours>= 8)
              "awake!";
           else
              "asleep, go away.";

log "I'm " + x;



Other languages may have bloated syntaxes, with no particular benefit.


auto x = localtime().hours>= 8 ?
        "awake!"
        :
        "asleep, go away.";

log( "I'm " ~ x );


If the expressions are complex I put them in functions.
1) It hides and isolates details, which allows you to focus on the more 
abstract aspects.
2) It gives the expression a name and facilitates reuse.

And that was the first thing I said one could do.

--
/Jacob Carlborg

Reply via email to