31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
;; -*- 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)))
|