Вы на самом деле довольно близко.Вот некоторые вопросы, которые могут помочь:
Что такое контракт / подпись listoutput
?
Что такое контракт / подпись append
?
Также я рекомендуюсначала создайте свои примеры, каждый пример опираясь на предыдущие.Например,
(check-expect (listoutput empty)) ???)
(check-expect (listoutput (cons (list 1) empty)) ???)
Если первый тест пройден, но второй не пройден, что это означает о том, где проблема, учитывая структуру функции?