{"body":"(define-setf-expander [] (table key &optional (default 'nil defaultp) &environment env)\n  (multiple-value-bind (temps inits new set get)\n      (get-setf-expansion table env)\n    (when (cdr new)\n      (error \"~A cannot store multiple values in one place\" '[]))\n    (let ((nv (gensym))\n          (elem-temp (gensym \"ELEM\")) (alist-temp (gensym \"ALIST\"))\n          (pair-temp (gensym \"PAIR\")) (default-temp (gensym \"DEFAULT\")))\n      (values\n       (append temps (list elem-temp alist-temp) (when defaultp (list default-temp))\n               (list pair-temp))\n       (append inits (list key get) (when defaultp (list default))\n               (list `(assoc ,elem-temp ,alist-temp :test #'equal)))\n       (list nv)\n       `(cond ((null ,pair-temp)\n               ,(if defaultp\n                    `(let ,new\n                       ;; progn to make the temp \"used\" and avoid the style warning.\n                       (setf ,(first new) (acons ,elem-temp (progn ,default-temp ,nv) ,alist-temp))\n                       ,set\n                       ,nv)\n                    `(error \"Could not find key ~a in dict ~a\" ,elem-temp ,alist-temp)))\n              (t (setf (cdr ,pair-temp) ,nv)))\n       `(cond ((null ,pair-temp)\n               ,(if defaultp\n                    default\n                    `(error \"Could not find key ~a in dict ~a\" ,elem-temp ,alist-temp)))\n              (t (cdr ,pair-temp)))))))","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/iqaiUEMA","modified":1535780186,"id":"iqaiUEMA","size":1398,"lines":28,"own_paste":false,"theme":"","date":1535780186}