Assignment and Substitution The function assign is designed to take solution sets of the type produced by solve and actually perform the variable assignments. To show this applied to a previous example: > # x and y are mathematical variables: > x,y; x, y > solset := solve({x+y, x*y=b}, {x,y}); solset := 1/2 1/2 1/2 1/2 {y = - (- b) , x = (- b) }, {y = (- b) , x = - (- b) } > # Now assign the first solution to the independent variables: > assign(solset[1]); x,y; 1/2 1/2 (- b) , - (- b) When there is a choice of solutions to assign, and you haven't specified a particular choice by subscripting a particular solution in the set, assign will chose one solution to apply to the independent variables. You can make temporary assignments to mathematical variables using the function subs. This allows you to evaluate an expression for a given set of values, without turning the mathematical variables into programming variables. Given that Maple generally applies full evaluation, this is an important feature. By giving subs a sequence of variable bindings and an expression, you can "test" the expression with those values: > # z is a programming variable: > z; z > f := cos(z); f := cos(z) > # Now, to see what f(2) is: > subs(z=Pi, f); cos(Pi) > # Force evaluation to simplify the result: > eval(subs(z=Pi, f)); -1 > # Now check to see the value of z: > z; z