56 lines
960 B
Text
56 lines
960 B
Text
$ENTRY Go {
|
|
= <Each Show <Tests>>;
|
|
};
|
|
|
|
Tests {
|
|
= ((1) (2) (3))
|
|
((0) (1) (2) (3))
|
|
((1) (0) (3) (4))
|
|
((1) (2) (0))
|
|
((0) (0) (0))
|
|
((0))
|
|
((1) (1) (1))
|
|
(('-'1) ('-'1) ('-'1))
|
|
(('-'1) ('-'2) (0) (3))
|
|
(('-'1));
|
|
};
|
|
|
|
Each {
|
|
s.F = ;
|
|
s.F (e.X) e.Y = <Mu s.F e.X> <Each s.F e.Y>;
|
|
};
|
|
|
|
Show {
|
|
e.X = <Prout <LinearCombination e.X>>;
|
|
};
|
|
|
|
LinearCombination {
|
|
e.X, <LC1 T 1 e.X>: {
|
|
= '0';
|
|
e.Y = e.Y;
|
|
};
|
|
};
|
|
|
|
LC1 {
|
|
s.F s.N = ;
|
|
s.F s.N (e.X) e.Y, <LCTerm s.F s.N e.X>: {
|
|
= <LC1 s.F <Add 1 s.N> e.Y>;
|
|
e.Z = e.Z <LC1 F <Add 1 s.N> e.Y>;
|
|
};
|
|
};
|
|
|
|
LCTerm {
|
|
s.F s.N 0 = ;
|
|
s.F s.N e.M = <LCMult s.F e.M> '(' <Symb s.N> ')';
|
|
};
|
|
|
|
LCMult {
|
|
T '-' 1 = '-e';
|
|
T '-' s.M = '-' <Symb s.M> '*e';
|
|
T 1 = 'e';
|
|
T s.M = <Symb s.M> '*e';
|
|
F '-' 1 = ' - e';
|
|
F '-' s.M = ' - ' <Symb s.M> '*e';
|
|
F 1 = ' + e';
|
|
F s.M = ' + ' <Symb s.M> '*e';
|
|
};
|