different meaning of function parameters?



why does my_factor2 yield an other result as my_factor1?

-----------------------------------------------------
my_factor1(a,x,q) := block(
        [res],
        res : ratcoef(q,x,1)/a,
        return(res)
)$

my_factor2(a,x,q) := block(
        [res,lhsc,rhsc,my_factor_c,sols],
        lhsc : ratcoef(q,x,1),
        rhsc : a*my_factor_c,
        sols : solve( [lhsc=rhsc], [my_factor_c] ),
        res : factor(rhs( sols[1] )),
        return(res)
)$

p : c*x;
cp : my_factor1(a,x,p);

p : a*x;
cp : my_factor1(c,x,p);

p : c*x;
cp : my_factor2(a,x,p);

p : a*x;
cp : my_factor2(c,x,p);
-----------------------------------------------------

Andre