Напишите процедуру typeof в схеме - PullRequest
2 голосов
/ 11 января 2011

Помогите мне ответить, следующий вопрос появляется в Просто схема

6.7. Напишите процедуру type-of, которая принимает в качестве аргумента что-либо и возвращает одно из слов: слово, предложение, числоили логическое значение:

> (type-of '(getting better))
  SENTENCE

> (type-of 'revolution)
  WORD

> (type-of (= 3 3))
  BOOLEAN

(Даже если числа являются словами, ваша процедура должна возвращать число, если ее аргумент является числом.)

1 Ответ

2 голосов
/ 11 января 2011

Вы можете использовать форму cond, чтобы проверить несколько условий и выполнить действие соответственно. Вы можете использовать предикаты boolean?, number?, word? и sentence? ¹, чтобы узнать, является ли значение логическим значением, числом, словом или предложением соответственно. Это в основном все, что нужно сделать.

Единственное, что вам нужно учитывать, это то, что регистр для number? должен предшествовать регистру для word? (потому что word? также вернул бы true для чисел, как указывает упражнение).


¹ Первые два - стандартная схема, последние два определены в просто .scm, который входит в книгу.

...