acro @c (a | d) + r no raquete

Gostaria de saber se é possível escrever uma macro no Racket que traduza todas as formas de forma (c (a | d) + r xs), em que c (a | d) + r é uma expressão regular que combina car, cdr, caar , cadr, ... etc, na composição correspondente de primeiro e resto.

Por exemplo, esta macro deve pegar (caadr '(1 2 3 4 5)) e transformá-la em (primeiro (primeiro (resto' (1 2 3 4 5))))

Algo assim em Shen (a nova linguagem de programação de Mark Tarver):https: //groups.google.com/group/qilang/browse_thread/thread/131eda1cf60d9094? hl = en

questionAnswers(8)

yourAnswerToTheQuestion