Artifact 6a29e1ffaffe6a966655c65885037b77a91c386ac76fba56cc93f512dbed6bb7:
- File
psl-1983/3-1/util/f-dstruct.red
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1178) [annotate] [blame] [check-ins using] [more...]
- File
psl-1983/util/f-dstruct.red
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1178) [annotate] [blame] [check-ins using]
% Fast Defstruct Improvements; % M.L. Griss % Load after Defstruct to redefine basic Selectors FLUID '(DefGetFn!* DefPutFn!* !*DefFnAsExpr); LoadTime << DefGetFn!*:='IGetv; DefPutFn!*:='IPutv; !*DefFnAsExpr:=NIL;>>; % RHS selector (get fn) constructor. lisp procedure MkSelector( Name, Slotnum ); If !*DefFnAsExpr then putd( Name, 'expr, list( 'lambda, '(Struct), List( DefGetFn!*, 'Struct, SlotNum ) ) ) else Putd(name,'macro, list('lambda,'(struct), List('LIST,MkQuote DefGetFn!*,'(Cadr Struct),MkQuote SlotNum))); % LHS depositor (put fn) constructor. lisp procedure MkDepositor( Name, Slotnum ); begin scalar PutName; PutName := intern concat( "PUT", id2string Name ); If !*DefFnAsExpr then putd( PutName, 'expr, list( 'lambda, '(Struct Val), List( DefPutFn!*, 'Struct, SlotNum, 'Val ) ) ) else Putd(PutName,'macro, list('lambda,'(struct), List('List,MkQuote DefPutFn!*, '(Cadr Struct), MkQuote SlotNum, '(Caddr Struct) )) ); put( Name, 'Assign!-Op, PutName ); return PutName end; END;