3 trivial examples (many more in the README):
(let ((place 7))
(modify (1+ place))
place)
==
(let ((place 7))
(incf place)
place)
=> 8
(let ((place '(old)))
(modify (cons 'new place))
place)
==
(let ((place '(old)))
(push 'new place)
place)
=> (NEW OLD)
;; Reminder for newbies: STRING-EQUAL is case-insensitive comparison.
(let ((place '("hello" "hi")))
(modify (adjoin "HELLO" place :test #'string-equal))
place)
==
(let ((place '("hello" "hi")))
(pushnew "HELLO" place :test #'string-equal)
place)
=> ("hello" "hi")
place-modifiers is in Quicklisp:
(ql:quickload "place-modifiers")
See the project's home for further information. Nearly-complete documentation is in the README.
This library is in the Public Domain. See the UNLICENSE file for details.
language extension convenience library