Inverted syntax: Difference between revisions

Line 91:
(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 andlast reversetwo, add wholeothers thingin reverse
(destructuring-bind (arg1 oper &rest args) (reverse form)
`(,oper ,(unrev-syntax arg1) ,@(mapcar #'unrev-syntax args)))))))
Anonymous user