Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defmacro with-post-params (params &body body)
- (let ((payload-assoc (gensym)))
- `(let ((,payload-assoc (url-decode-params (payload-as-string))))
- (let ,(loop for param in params
- collect `(,param (cdr (assoc (symbol-name ',param)
- ,payload-assoc
- :test #'string-equal))))
- ,@body))))
- (with-post-params (name age sex)
- (format t "L'age de ~a (~a) est ~a ans" name age sex))
- ;; Si j'expand ma macro, j'obtiens:
- (LET ((#:G831 (URL-DECODE-PARAMS (PAYLOAD-AS-STRING))))
- (LET ((NAME (CDR (ASSOC (SYMBOL-NAME 'NAME) #:G831 :TEST #'STRING-EQUAL)))
- (AGE (CDR (ASSOC (SYMBOL-NAME 'AGE) #:G831 :TEST #'STRING-EQUAL)))
- (SEX (CDR (ASSOC (SYMBOL-NAME 'SEX) #:G831 :TEST #'STRING-EQUAL))))
- (FORMAT T "L'age de ~a (~a) est ~a ans" NAME AGE SEX)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement