[PD] jMax Phoenix

Mathieu Bouchard matju at artengine.ca
Fri Oct 8 17:11:21 CEST 2010

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

More information about the Pd-list mailing list