Синтаксис if
:
(if predicate
consequent
optional-alternative)
В вашем коде consequent
равно (evaluate (cdr mylist))
, а optional-alternative
равно (display (integer? (car mylist)))
. Все, что после этого игнорируется.
Если вы хотите выполнить несколько выражений, вы должны заключить их в begin
.
(define (evaluate mylist)
(if (eqv? (car mylist) 'prog)
(evaluate (cdr mylist))
(begin
(display (integer? (car mylist)))
(if (integer? (car mylist))
(display "YESSS")
)
)
)
(if (eqv? (car mylist) 'myignore)
(myignore (cdr mylist))
)
)