Используя только стандартную схему, у нас есть cond
для этого:
(cond ((symbol? x) (display "ONE"))
((integer? x) (display "TWO"))
(else (display "OTHER")))
Если у вас есть какое-то ограничение, и вы должны использовать if
, мы можем его вложить :
(if (symbol? x)
(display "ONE")
(if (integer? x)
(display "TWO")
(display "OTHER")))
Мы можем удалить выражения begin
. В версии cond
они совершенно не нужны, а во вложенной версии if
они не требуются, если внутри есть одно выражение.
В обеих версиях я добавил условие else
, потому что некоторые Схемы ароматов делают его обязательным и в любом случае это лучшая практика.