expr = переменная |бул-буквальный |не-expr |и-expr |or-expr.
variable = a symbol v for which (is-vble? v) returns #t .
bool-literal = "t" | "f" .
not-expr = "(" "not" expr ")" .
and-expr = "(" expr "and" expr ")" .
or-expr = "(" expr "or" expr ")" .
implication-expr = "(" expr "-->" expr ")" .
Реализуйте функцию (is-bool-expr? expr), которая возвращает #t, если expr является допустимым логическим выражением (как определено выше), и #f в противном случае. Например:
(is-bool-expr? 'T)
t
(is-bool-expr?' (T или (не f)))
t
(is-bool-expr? '((P и (p -> f)) -> q))
t
(is-bool-expr? '((P и (p -> f)) -> q))
t
(is-bool-expr? '(сырная обувь))
f