Я новичок в схеме, и я пытаюсь написать процедуру, которая всегда находит первый элемент хвоста списка. Это важно при рекурсивных вызовах.Создание процедуры, которая принимает список как аргумент
Вот моя процедура:
(define second (lambda (x) (car(cdr(x))))
и это, как я стараюсь, чтобы проверить это работает ли это правильно или нет:
>(define x (list 1 2 3 4))
>(second x)
и это ошибка:
procedure application: expected procedure, given: (1 2 3 4) (no arguments)
=== context ===
stdin::184: second
/usr/share/racket/collects/racket/private/misc.rkt:85:7
В чем может быть проблема? Можете ли вы дать мне вдохновение? Является ли мое определение «вторым» неправильным или что?
Заранее спасибо.
Вы используете это в DrRacket? Если это так, вы должны увидеть красную подсветку в области, где происходит ошибка. Вы видите это? – dyoo
Нет, я пытался это сделать на терминале – user2870
Если можно, попробуйте запустить Drracket; дополнительная поддержка, которую он предоставляет, должна быть полезна, когда вы изучаете язык. – dyoo