0

これが機能します:

(define obj1 (maak-object (coord 1 1) #f #f #t))
(set! karaktersenobjectenlijst (append karaktersenobjectenlijst
                                  (list (list 'object obj1)))))

> (cadar karaktersenobjectenlijst)
obj1
> (positie obj1)
{1 . 1}

これは機能しません:

> (positie (cadar karaktersenobjectenlijst))
. . vector-ref: expects type <vector> as 1st argument, 
. .   given: obj1; other arguments were: 0

obj1が評価されたときに値を使用するにはどうすればよい(cadar karaktersobjectenlijst)ですか?

4

1 に答える 1

1

コードは正しいです。私はあなたの関数をいくつかのダミーに置き換えました、そしてそれはうまく評価されます:

(define coord cons)
(define maak-object list)
(define positie car)

(define obj1 (maak-object (coord 1 1) #f #f #t))
(define karaktersenobjectenlijst '())
(set! karaktersenobjectenlijst (append karaktersenobjectenlijst
                                       (list (list 'object obj1))))
(cadar karaktersenobjectenlijst)

(positie obj1) #-> (1 . 1)
(positie (cadar karaktersenobjectenlijst)) #-> (1 . 1)

問題は、ライブラリ コードまたは使用方法にあるに違いありません。スキームの評価は正常に機能します。

于 2011-05-02T16:18:21.387 に答える