2013-04-30 3 views
1

Я новичок в функциональное программирование и у меня есть кусок кода, как следующее:Процедура? Ключевое слово в схеме

(procedure? (car (list cdr))) 
Value: #t 

Я не понимаю, почему это возвращает истину. cdr - это процедура, но какова машина списка cdr? Я не понимаю. Может ли кто-нибудь объяснить?

Благодаря

ответ

3

list превращает его содержимое в виде списка. Итак, (list cdr) - это всего лишь список элементов cdr, который сам по себе является процедурой. car получает первый элемент списка. Таким образом, (car (list x)) == x для любых x.

Это упрощает нашу проблему до (procedure? cdr). Поскольку cdr явно является процедурой, это возвращает true.

+0

Я понимаю, спасибо – yrazlik

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