Я создал функцию, которая берет список и два элемента списка. Он должен возвращать #t, если второй аргумент появляется в аргументе списка перед третьим аргументом:Программа ракеты не работает как она должна
Процедура также должна возвращать #f, если любой из предполагаемых элементов вообще не отображается.
вот что я получил до сих пор:
(define (before-in-list? lst a b)
(cond
((empty? lst) #f)
((eq? (car lst) a) (map b (cdr lst)) #t)
((eq? (car lst) b) #f)
(else (before-in-list? (cdr lst) a b))))
, чтобы проверить это, я использовал:
(before-in-list? '(back in the ussr) '(in) '(ussr))
(before-in-list? '(back in the ussr) '(the) '(ussr))
проблема заключается в том, что она дает мне е каждый раз.
любые подсказки о том, как исправить это пожалуйста?
большое спасибо –
@yousifS без проблем! Если этот ответ был полезен для вас, пожалуйста, не забудьте [принять] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), просто нажмите отметьте его слева;) –
@yousifS, пожалуйста, не забудьте принять этот ответ! –