setf.lsp: rework psetf, shiftf and rotatef to work with places with multiple values.
authorDaniel Kochmański <dkochmanski@hellsgate.pl>
Mon, 6 Apr 2015 16:43:15 +0000 (18:43 +0200)
committerDaniel Kochmański <jackdaniel@hellsgate.pl>
Tue, 7 Apr 2015 12:33:36 +0000 (14:33 +0200)
commit69d9c6e43b90513386756ed6eea6658b3324fc7a
treecfc9ca38a68ad3d7fd0ee4fb27cbe122500620d7
parente32a9b0000582eb740a540e16f005831f468deed
setf.lsp: rework psetf, shiftf and rotatef to work with places with multiple values.

Additional macros has been proposed:

- with-setf-expansions maps setf expansions of places on provided list
  into lists of pairs (bindings), stores, store-forms and
  access-forms.

- with-expansion-setter creates lexically scoped function, which binds
  forms to stores using multiple-value-binds, and at the end places
  code provided at start macro-call.
src/lsp/setf.lsp