summaryrefslogtreecommitdiff
path: root/happy-birthday.el
blob: fb96a6cbb55d10198cf7e82cdc44fa978e308909 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;;; happy-birthday.el --  -*- lexical-binding: t -*-

(defmacro seb (&rest x)
  (let ((r) (w))
    (dolist (e x)
      (cond ((eq e '!) (push ?a w))
            ((eq e '!?)
             (push (intern (apply 'string w)) r)
             (setf w nil))
            ((eq e '()) (setf (car w) (1+ (car w))))))
    `(quote ,r)))
(seb
 ! () ! () () () () ! () () () () () () () () () () ()
 () () () () () () () !? ! () () () () () () () ()
 () () () () () () () () () () () () () () () () ! !
 () () () ! () () () () () () () ! () () () () () ()
 () () () () () () () () () () () () () ! () () ()
 () () () () () () () () () () () () () () ! () ()
 () () () () () () ! () !? ! () () () () () () () ()
 () () () () () () () () () () () () () () () () !
 () () () () () () () () () () () () () () () ! ()
 () () () () () () () () () () () () () () ! ! () ()
 () () () () () !?)