;; -*- mode: lisp-data -*- (fset 'defmacro (cons 'macro (lambda (name lambda-list &rest body) "Define NAME to be a macro." (declare (name defmacro)) (list 'fset (list 'quote name) (list 'cons (quote 'macro) (list* 'lambda lambda-list (list 'declare (list 'name name)) body)))))) (defmacro defun (name lambda-list &rest body) "Define NAME to be a function." (list 'fset (list 'quote name) (list* 'lambda lambda-list (list 'declare (list 'name name)) body))) (defun princln (datum &optional print-char-fun) "`princ' DATUM to PRINT-CHAR-FUN. Then print a newline." (princ datum print-char-fun) (funcall (or print-char-fun 'write-byte) ?\n)) (let ((t1 (make-hash-table)) (t2 (make-hash-table))) (puthash t1 'a 'b) (puthash t2 'a 'b) (princln (equal t1 t2)))