Как вы составили список (5 20 25 40)
не имеет значения. Таким образом, весь ваш код не имеет отношения к этому вопросу. По сути, вам нужно следующее:
(define some-list '(5 20 25 40)) ; doesn't matter how this came about
(find (lambda (e) (= e 8)) some-list) ; ==> #f
(find (lambda (e) (= e 40)) some-list) ; ==> 40 (thruthy)
Теперь find
определено в библиотеке списков SRFI-1 и признано за R7RS Large. Я полагаю, что вы могли бы сделать абстракцию более полезной для вашего случая, например (exists? 40 some-list)
, которая использует find
, или вы можете свернуть свою собственную, как в ответе Торбио.