Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;; with-yeet.lisp
- (defvar *yeets* '((deπ ±un defun)
- (cπ ±r cdr)
- (cπ °r car)
- (π€ lambda)
- (π let)
- (π labels)
- (π© nil)
- (π©? null)
- (π t)
- (π¦ cons)
- (π€ cl-user)
- (π cl)))
- (defun yeet-transform (program)
- (if (consp program)
- (cons (yeet-transform (car program))
- (yeet-transform (cdr program)))
- (let ((match (assoc program *yeets*)))
- (if (null match)
- program
- (second match)))))
- (defmacro with-yeet ((&key skkrt) &body body)
- `(progn
- ,(when skkrt
- '(format t "~&yeetus that π~%"))
- ,@(yeet-transform body)))
- ;;; a sample program
- (with-yeet (:skkrt t)
- (deπ ±un reπ ±erse (π ±ist)
- (π ((π ° (π ± π °)
- (if (π©? π ±)
- π °
- (π ° (cπ ±r π ±) (π¦ (cπ °r π ±) π °)))))
- (π ° π ±ist π©))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement