Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/Inverted-syntax/Common-Lisp/inverted-syntax-1.lisp
Normal file
10
Task/Inverted-syntax/Common-Lisp/inverted-syntax-1.lisp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
(eval-when (:compile-toplevel :load-toplevel :execute)
|
||||
(defun unrev-syntax (form)
|
||||
(cond
|
||||
((atom form) form)
|
||||
((null (cddr form)) form)
|
||||
(t (destructuring-bind (oper &rest args) (reverse form)
|
||||
`(,oper ,@(mapcar #'unrev-syntax args)))))))
|
||||
|
||||
(defmacro rprogn (&body forms)
|
||||
`(progn ,@(mapcar #'unrev-syntax forms)))
|
||||
14
Task/Inverted-syntax/Common-Lisp/inverted-syntax-2.lisp
Normal file
14
Task/Inverted-syntax/Common-Lisp/inverted-syntax-2.lisp
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
(eval-when (:compile-toplevel :load-toplevel :execute)
|
||||
(defun unrev-syntax (form)
|
||||
(cond
|
||||
((atom form) form) ;; atom: leave alone
|
||||
((null (cdr form)) form) ;; one-element form: leave alone
|
||||
((null (cddr form)) ;; two-element form: swap
|
||||
(destructuring-bind (arg oper) form
|
||||
`(,oper ,(unrev-syntax arg))))
|
||||
(t ;; two or more args: swap last two, add others in reverse
|
||||
(destructuring-bind (arg1 oper &rest args) (reverse form)
|
||||
`(,oper ,(unrev-syntax arg1) ,@(mapcar #'unrev-syntax args)))))))
|
||||
|
||||
(defmacro rprogn (&body forms)
|
||||
`(progn ,@(mapcar #'unrev-syntax forms)))
|
||||
Loading…
Add table
Add a link
Reference in a new issue