Я разрабатываю простую функцию (для класса, поэтому, пожалуйста, не делайте полных ответов), которая возвращает первое нечетное целое число в списке, или 'нет, если их нет.
У меня есть рабочий код для нахождения нечетного числа:
(defun first-odd (lst)
(do ((numbers lst (cdr numbers)))
((oddp (car numbers)) (car numbers))))
, но я не могу понять, где разместить условное IF (которое требуется для назначения) для выдачи "NONE", если список только чётный # или предположительно ноль. Я делаю точку выхода самого DO условной? Или это go до / после?
Я работаю над чем-то вроде этого (хотя у меня есть ощущение, что это неправильно):
(defun first-odd (lst)
(do ((numbers lst (cdr numbers)))
((if (oddp (car numbers))
(car numbers)
(print 'none)))))
Или кто-то может посоветовать мне «где» разместить IF? Извините за действительно новички, но проф не предоставил много документации для DO, и я ломал голову все выходные. Заранее спасибо.