by
Peter Fritzson,
PELAB - Programming Environment Laboratory
Dept. of Computer and Information Science,
Linköping University, Sweden
Assignment statement
x = 555
x = x+300
If-statement
If[x>800,
numSolns = 2;
Print["hejsan"]
,
numSolns=4;
Print["hoppsan"]
]
While-statement
n = 9;
While[n != 0,
Print[n];
n = Floor[n/2]
]
For-loop
For[i=1, i < 4, i++,
Print[i]
]
Conventional function style (p 13)
gcd[u_,v_] := Block[{
},
If[v==0,
Return[u]
,
Return[gcd[v,Mod[u,v]]]
]
];
gcd[8,18]
Shorter version (Scheme-like, p 13)
gcd[u_,v_] :=
If[v==0,
u
,
gcd[v, Mod[u,v]]
];
gcd[8,16]
Rule version (p 14)
(recurrence equations)
gcd[u_,0] := u;
gcd[u_,v_] := gcd[v, Mod[u,v]];
gcd[8,28]
2-rule grammar
expr-- > expr + expr |
number
Textual input form, evaluated value
3 + 4 * 5
Abstract syntax intermediate form
(Hold prevents evaluation)
Hold[3 + 4 * 5] //FullForm