scheme:位置错误的类型参数

时间:2016-06-13 05:05:21

标签: scheme guile

如果有人可以帮助我,我真的很感激。我一直想敲打我的头一天试图让它发挥作用。我搜索了互联网并重读了手册,但我只是不明白。

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)

我知道格式是非标准的 - 我会在它工作时修复它。

EDIT ----------------------------------------- 这是工作代码(希望现在合理格式化):

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 个答案:

答案 0 :(得分:2)

heading-list是一个列表。您正在使用它,就好像它是一个程序。 (heading-list)表示&#34;将过程heading-list应用于零参数&#34;。因此错误消息&#34;要应用的错误类型&#34;。