(if (atom arg)
`(expt ,arg 2)
(case (car arg)
- (square (if (= (length arg) 2)
- `(expt ,(nth 1 arg) 4)
- form))
- (expt (if (= (length arg) 3)
- (if (numberp (nth 2 arg))
- `(expt ,(nth 1 arg) ,(* 2 (nth 2 arg)))
+ (square (if (= (length arg) 2)
+ `(expt ,(nth 1 arg) 4)
+ form))
+ (expt (if (= (length arg) 3)
+ (if (numberp (nth 2 arg))
+ `(expt ,(nth 1 arg) ,(* 2 (nth 2 arg)))
`(expt ,(nth 1 arg) (* 2 ,(nth 2 arg))))
- form))
- (otherwise `(expt ,arg 2)))))
+ form))
+ (otherwise `(expt ,arg 2)))))
(assert (eql 81 (square (square 3))))
(assert (not expanded-p)))
(assert (equal '(expt x 2)
- (funcall (compiler-macro-function 'square)
- '(square x)
- nil)))
+ (funcall (compiler-macro-function 'square)
+ '(square x)
+ nil)))
(assert (equal '(expt x 4)
- (funcall (compiler-macro-function 'square)
- '(square (square x))
- nil)))
+ (funcall (compiler-macro-function 'square)
+ '(square (square x))
+ nil)))
(assert (equal '(expt x 2)
- (funcall (compiler-macro-function 'square)
- '(funcall #'square x)
- nil)))
+ (funcall (compiler-macro-function 'square)
+ '(funcall #'square x)
+ nil)))
-(quit :unix-status 104)