(defmacro compose (f g)
`(lambda (x) (,f (,g x))))
(let ((func (compose 1+ 1+)))
(funcall func 5)) ;=> 7