Artifact c7ba60700fe6e2d6c81b8efab94f0cb519b566c8557dacf34390e654585d4f35:
- Executable file
r37/packages/rlisp/where.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: 836) [annotate] [blame] [check-ins using] [more...]
- Executable file
r38/packages/rlisp/where.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: 836) [annotate] [blame] [check-ins using]
module where; % Support for a where construct. % Author: Anthony C. Hearn. % Copyright (c) 1987 The RAND Corporation. All rights reserved. % global '(fixedpreclis!*); symbolic procedure formwhere(u,vars,mode); begin scalar expn,equivs,y,z; expn := cadr u; equivs := remcomma caddr u; if not(mode eq 'symbolic) then return formc(list('whereexp,'list . equivs,expn),vars,mode); for each j in equivs do if not atom j and car j memq '(equal setq) then <<y := caddr j . y; z := cadr j . z>> else rerror(rlisp,17,list(j,"invalid in WHERE statement")); return formc(list('lambda,reversip z,expn) . reversip y,vars,mode) end; put('where,'formfn,'formwhere); % fixedpreclis!* := 'where . fixedpreclis!*; % Where has special place. % mkprec(); endmodule; end;