1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
//Tell(a);
/////////////////////////////////////////////////////////////////
// my MatchLinear
/////////////////////////////////////////////////////////////////
10 # myMatchLinear(var_(Not IsAtom),expr) <-- List();
12 # myMatchLinear(_var,expr_CanBeUni) <--
[
Local(d,c);
d := myDegree(expr,var);
Tell(1,{expr,d});
If(d = 1, [c:=Coef(expr,var,{1,0}); Tell(ooo,{c}); c;], List() );
];
14 # myMatchLinear(_var,_expr) <-- List();
/////////////////////////////////////////////////////////////////
// my Degree
/////////////////////////////////////////////////////////////////
10 # myDegree(expr_CanBeUni,_var) <-- [Tell(D2,{expr,var}); Degree(expr,var);];
20 # myDegree(_expr,_var) <-- False;
Retract("tellMe",2);
Retract("trythis",2);
Clear(p1);
Clear(p2);
Clear(ss);
Clear(cc);
p1 := A*x+B;
p1 := x+B;
//p2 := A*x^2+B*x+C;
//ss := Sin(x);
//cc := 23;
10 # trythis(_var,_expr)_(mm:=myMatchLinear(var,expr)) <-- Tell("Here is the output: ",mm);
20 # trythis(_var,_expr) <-- Tell("NADA");
tellMe(_var,_expr) <--
[
Local(m,ccs);
Tell(CASE,expr);
m := myMatchLinear(var,expr);
Tell(1,m);
ccs := trythis(var,expr);
Tell(2,ccs);
];
//TraceOn();
tellMe(x,p1); NewLine();
//TraceOff();
/*tellMe(x,p2); NewLine();
tellMe(x,ss); NewLine();
tellMe(x,cc); NewLine();
*/
|