2016-02-01 1 views
0

Работа над заданием прямо сейчас (ракетка) и столкнулась с этой проблемой.Список процедур не работает? * Важно

> (define a '(even?)) 
> a 
(even?) 
> (first a) 
even? 
> (even? 2) 
#t 
> ((first a) 2) 
. . application: not a procedure; 
expected a procedure that can be applied to arguments 
    given: even? 
    arguments.: 

Почему это не работает? Нет ((первый а) 2) эквивалент (даже? 2) ??

+1

Adam B уже ответил на ваш вопрос, но вопрос [В чем разница между 'quote' и' list'?] (Https://stackoverflow.com/questions/34984552/what-is-the-difference-between -quote-and-list) может помочь вам понять, почему. Это объясняет эту проблему гораздо более подробно. –

ответ

1

'(even?) эквивалентен (quote (even?)), который возвращает список с символом even? (не функция).

Если вы хотите, чтобы код, который вы описываете для работы, вам нужно, чтобы первое определение выглядело как (define a (list even?)), которое представляет собой список с процедурой even?.

+0

ohhhhh Я вижу, спасибо большое! – Chase

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