Question: Why doesn't `if` recognize three arguments and why does piecewise return these strange results?

Here is a chunk of a more complex code

# syntax 1

decisions := "accept", "reject":

T := 2:
# The true test is `if`(t > T, ...) where t comes from some computation.
# In order to focus on the issue I assumed t was equal to 1.
`if`(1 > T, decisions[1], decisions[2]);
                   "reject"

To get a more concise writing, I did the following

# syntax 2

decisions := "accept", "reject": 
T := 2: 
`if`(1 > T, decisions);

and received this error

Error, invalid input: `if` expects 3 arguments, but received 2

Why doesn't `if` recognizes that decisions is a two parameters sequence?
Is there a way to force `if` to understand syntax 2 ?

I tried replacing `if` by piecewise: while getting no error I can't understand why I got si strange results:

piecewise(1 > T, decisions);
piecewise(3 > T, decisions);
                               0
                       "accept", "reject"

What mechanism does piecewise use to return these values?

Thanks in advance

If_and_piecewise.mw

Please Wait...