On Thu, 23 Sep 2010, Bernardo Barros wrote:
if (0.5.coin) {"Hey".postln} {"Ho!"}; OR if (0.5.coin, {"Hey".postln}, {"Ho!"}); But since SC is object-oriented and "if" is a method of "boolean", this also works and would be considered more consistent with the language design: (0.5.coin).if({"Hey".postln}, {"Ho!"})
To complete what we were saying, even though there's a lot in common between SC and Ruby, conditionals are completely different over there, and there are nine syntaxes for conditionals, NOT including a method of boolean (because Ruby doesn't have this feature).
I forgot to say last time (and that's probably what IOhannes was referring to) that in Perl and Ruby, the operators && || "and" "or" have been recycled into conditionals in Perl and Ruby. Then there are also the reverse conditionals "if" and "unless". those statements are all equivalent in Ruby :
if debug then post("problem") end unless not debug then post("problem") end post("problem") if debug post("problem") unless not debug debug and post("problem") debug && post("problem") not debug or post("problem") !debug || post("problem") debug ? post("problem") : nil
which is almost the same deal as in Perl except Ruby's regular "if" statement is actually an expression.
"and"/"or" and "&&"/"||" aren't just aliases, because they also have different priorities.
| Mathieu Bouchard ------------------------------ Villeray, Montréal, QC