Artifact 9a94f5882337b789ef412f8beb2fd85f05ea2b7bfdf8e45555945a7861a5df5c:
- Executable file
r37/packages/excalc/exlists.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 3616) [annotate] [blame] [check-ins using] [more...]
- Executable file
r38/packages/excalc/exlists.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 3616) [annotate] [blame] [check-ins using]
module excalc!-lists; % Author: Eberhard Schruefer symbolic procedure exdflist(u,v); 'list . exdfl1 listeval(car u,v); symbolic procedure exdfl1 u; if null u then nil else (if x then mk!*sq !*pf2sq x . exdfl1 cdr u else exdfl1 cdr u) where x = partitexdf list car u; put('d,'listfn,'exdflist); symbolic procedure innerprodlist(u,v); ('list . if eqcar(x,'list) then if eqcar(y,'list) then rederr "currently only one list arg is implemented" else innerprodl1(cdr x,y) else if eqcar(y,'list) then innerprod1l(x,cdr y)) where x = if getrtype car u eq 'list then listeval(car u,nil) else car u, y = if getrtype cadr u eq 'list then listeval(cadr u,nil) else cadr u; symbolic procedure innerprodl1(u,v); if null u then nil else (if x then mk!*sq !*pf2sq x . innerprodl1(cdr u,v) else innerprodl1(cdr u,v)) where x = partitinnerprod list(car u,v); symbolic procedure innerprod1l(u,v); if null v then nil else (if x then mk!*sq !*pf2sq x . innerprod1l(u,cdr v) else innerprod1l(u,cdr v)) where x = partitinnerprod list(u,car v); put('innerprod,'listfn,'innerprodlist); symbolic procedure liedflist(u,v); ('list . if eqcar(x,'list) then if eqcar(y,'list) then rederr "currently only one list arg is implemented" else liedfl1(cdr x,y) else if eqcar(y,'list) then liedf1l(x,cdr y)) where x = if getrtype car u eq 'list then listeval(car u,nil) else car u, y = if getrtype cadr u eq 'list then listeval(cadr u,nil) else cadr u; symbolic procedure liedfl1(u,v); if null u then nil else (if x then mk!*sq !*pf2sq x . liedfl1(cdr u,v) else liedfl1(cdr u,v)) where x = partitliedf list(car u,v); symbolic procedure liedf1l(u,v); if null v then nil else (if x then mk!*sq !*pf2sq x . liedf1l(u,cdr v) else liedf1l(u,cdr v)) where x = partitliedf list(u,car v); put('liedf,'listfn,'liedflist); symbolic procedure modulolist(u,v); 'list . modulol1(cdr listeval(car u,nil),cadr u); symbolic procedure modulol1(u,v); if null u then nil else (if x then mk!*sq !*pf2sq x . modulol1(cdr u,v) else modulol1(cdr u,v)) where x = partitmodulo list(car u,v); put('modulo,'listfn,'modulolist); symbolic procedure wedgelist(u,v); 'list . ((if eqcar(x,'list) then wedgel1(x,cdr y) else wedge1l(x,wedgelist cdr y)) where x=if getrtype car u eq 'list then listeval(car u,nil) else car u, y=if getrtype cadr u eq 'list then listeval(cadr u,nil) else cadr u); symbolic procedure wedge1l(u,v); if null v then nil else ((if x then x . wedge1l(u,wedg1l cdr v) else wedge1l(u,wedg1l cdr v)) where x = partitwedge list(u,car v)); put('wedge,'listfn,'wedgelist); symbolic procedure exc!-maplist(u,v); ('list . if eqcar(y,'list) then exc!-map1l(car u,cadr u,cdr y)) where y = if getrtype caddr u eq 'list then listeval(caddr u,v) else caddr u; symbolic procedure exc!-map1l(u,p,v); if null v then nil else (if x then mk!*sq !*pf2sq x . exc!-map1l(u,p,cdr v) else exc!-map1l(u,p,cdr v)) where x = excalc!-mapfn list(u,p,car v); endmodule; end;