2011-01-11 2 views
2

Помогите мне ответить появляется следующий вопрос в Simply SchemeНапишите процедуру TYPEOF на схеме

6.7 Описать процедуру TYPEOF, которая принимает что-либо в качестве аргумента и возвращает один из слов слова, фразы, номер, или логическое значение:

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

> (type-of 'revolution) 
    WORD 

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

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

ответ

2

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

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


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

+0

Вы читаете мой разум. Я собираюсь задать этот вопрос после прочтения вашего ответа. Я так взволнован, так как это мой первый вопрос о stackoverflow, и я получил немедленный ответ от кого-то, кто знает книгу! Огромное спасибо. – Kai

Смежные вопросы