Схема: неверный тип аргумента в позиции
Буду очень признателен, если кто-нибудь сможет помочь с этим. Я целый день колотил головой, пытаясь заставить это работать. Я искал в Интернете и перечитал руководство, но я просто не понимаю.
guile << __EOF__
( define heading-list (list 'a 'b 'c)
)
(define (make-heading-list)
( let* ((mycond #t))
( if mycond
( set!
heading-list
( append (
heading-list
(list 'd)
)
)
)
( display 'false)
)
heading-list
)
)
(make-heading-list)
__EOF__
Когда я запускаю это, я получаю:
ERROR: In procedure setter:
ERROR: In procedure setter: Wrong type argument in position 1: (a b c)
Я знаю, что форматирование не является стандартным - я исправлю это, когда оно будет работать.
РЕДАКТИРОВАТЬ ----------------------------------------- Вот рабочий код (надеюсь, разумно отформатирован сейчас):
guile << __EOF__
(define heading-list (list 'a 'b 'c))
(define (make-heading-list)
(let* ((mycond #t))
(if mycond
(set!
heading-list
(append heading-list (list 'd)))
(display 'false))
heading-list))
(make-heading-list)
__EOF__
1 ответ
Решение
heading-list
это список. Вы используете это, как если бы это была процедура. (heading-list)
означает "применить процедуру heading-list
к нулю аргументов ". Отсюда сообщение об ошибке" неправильный тип для применения ".