/usr/share/yacas/patterns.rep/code.ys is in yacas 1.3.3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | RuleBase("MakeVector",{vec,dimension});
Rule("MakeVector",2,1,True)
[
Local(res,i);
res:={};
i:=1;
Set(dimension,MathAdd(dimension,1));
While(LessThan(i,dimension))
[
DestructiveInsert(res,1,Atom(ConcatStrings(String(vec),String(i))));
Set(i,MathAdd(i,1));
];
DestructiveReverse(res);
];
RuleBase("<--",{patternleft,patternright});
Rule("<--",2,1,Equals(Type(patternleft),"#"))
[
DefinePattern(patternleft[2],patternright,patternleft[1],True);
];
Rule("<--",2,2,IsFunction(patternleft))
[
DefinePattern(patternleft,patternright,0,True);
];
HoldArg("<--",patternleft);
HoldArg("<--",patternright);
RuleBase("DefinePattern",
{patternleft,patternright,patternprecedence,postpredicate});
Rule("DefinePattern",4,9,Equals(Type(patternleft),"_"))
[
DefinePattern(patternleft[1],patternright,
patternprecedence,patternleft[2]);
];
Rule("DefinePattern",4,10,True)
[
Local(patternflat,patternvars, patt, patternoper,arity);
Set(patternflat, Listify(patternleft));
Set(patternvars, Tail(patternflat));
Set(patternoper,String(Head(patternflat)));
Set(arity,Length(patternvars));
DefLoadFunction(patternoper);
If(Not(RuleBaseDefined(patternoper,arity)),
[
MacroRuleBase(patternoper,MakeVector(arg,arity));
]
);
Set(patt,Pattern'Create(patternvars,postpredicate));
MacroRulePattern(patternoper,arity,patternprecedence,
patt)patternright;
True;
];
|