Если вы просто конвертируете
(define (my-apply f args)
(apply f args))
до
(define-macro (my-other-apply f args)
`(,f ,@args))
тогда это кажется достаточно простым. Самой большой ошибкой в этой ситуации является то, что вы должны помнить, что не следует указывать список, который вы передаете макросу.
>(my-apply + '(1 2 3))
>6
>(my-other-apply + '(1 2 3))
>ERROR syntax-error: "(+ quote 1 2 3)"
>(my-other-apply + (1 2 3))
>6