Question: any semantic difference between subs({....},expr);eval(%) and eval(expr,{....})

Given expr:=sin(n*x); and say I want to find its value at n=1,x=Pi/2, I found I can do

subs({n=1,x=Pi/2},expr); eval(%);

or combine into one

eval(subs({n=1,x=Pi/2},expr); ----(1)

But also one can write

eval(expr,{n=1,x=Pi/2}); ----- (2)

So if someone wants to just find value of expression as above, it seems (2) is much simpler than (1) since no need to call subs, it is done automatically. Is there anything else I am overlooking?

Only problem I see in the above, is that subs() uses different order: subs({},expr), while eval is:  eval(expr,{}); The other way around.

It would have been better if the order was the same in the API, to reduce confusion.



Please Wait...