You are on page 1of 3

(%i24) kill(all)$

1.1

block

[] block ([v_1, ..., v_m], e_1, ..., e_n) (ek ),


[v_1, ..., v_m] ,

(%i1)

g(N):=block([y],f(x):=x^N,
y:f(x)^2,
integrate(y,x)+y)$
g(5);

(%o2)

x11
+ x10
11

(%i3)

y/* block local , */;

(%o3)

,
(%i4)
(%o4)

test(f):=block([u],u:integrate(f,x),ratsimp(f-diff(u,x)));
(
)

test (f ) := block [u], u : f dx, ratsimp (f di (u, x))

(%i5)

test(1/(x+1));

(%o5)

1.2

if then else

[] if c1 then e1 else e2

. . . . . .

e1 , e2

[] if c1 then e1 else if c2 then e2 else e3 e1 , e2


Maxima

wxMaxima

(%i6)

a:10$
if(a>3*%pi) then b:a^3 else b:-a*3$
b;

(%o8)

1000

block ,
(%i9)

g(x):= block([y], if x>0 then y:x^2 else y:-x^2, y) $


[g(5),g(-3)];

(%o10)

[25, 9]

1.3

[] for v: ini step inc thru limit do body


body

v = ini, ini + step, , limit

(%i11) for a:-3 thru 26 step 7 do display(a)$


a = 3a = 4a = 11a = 18a = 25
[] for v: ini step inc while cond do body v = ini, ini + step, ,
cond body
(%i12) s: 0$
for i: 1 while i <= 10 do s: s+i$
s;
(%o14)

55

[] for v:ini step inc unless cond do body v = ini, ini + step, ,
cond , body
(%i15) series: 1$
term: exp (sin (x))$
for p: 1 unless p > 7 do
(term: diff (term, x)/p,
series: series + subst (x=0, term)*x^p)$
series;
Maxima

wxMaxima

(%o18)

1.4

x7
x6
x5 x4 x2

+
+x+1
90 240 15
8
2

go

[] go(label)

. . . . . . . . . . . . . . . . . . .

(%i19) block([x,y], x:1,y:0,


loop, x:x+1 ,
y:y+x^2,
if(x<=10) then go(loop)
else y);
(%o19)

1.5

505

local

[] go(local(var))

. . . . . . . . . . .

block ,

(%i20) foo(x) := 1 - x$
foo(100);
block (local(foo), foo (x) := 2 * x, foo (100))/*block foo */;
foo (100);
(%o21)

99

(%o22)

200

(%o23)

99

Maxima

wxMaxima

You might also like