方案:位置上的类型参数错误
scheme: Wrong type argument in position
如果有人可以提供帮助,我将不胜感激。我一直在敲我的头一天试图让这个工作。我已经在互联网上搜索并重新阅读了手册,但我就是不明白。
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__
heading-list
是一个列表。您正在使用它,就好像它是一个过程一样。 (heading-list)
表示 "apply procedure heading-list
to zero arguments"。因此错误消息 "wrong type to apply".
如果有人可以提供帮助,我将不胜感激。我一直在敲我的头一天试图让这个工作。我已经在互联网上搜索并重新阅读了手册,但我就是不明白。
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__
heading-list
是一个列表。您正在使用它,就好像它是一个过程一样。 (heading-list)
表示 "apply procedure heading-list
to zero arguments"。因此错误消息 "wrong type to apply".