Scheme &引用;不是一个合适的列表”;DrRacket写入方案中出错

Scheme &引用;不是一个合适的列表”;DrRacket写入方案中出错,scheme,racket,sicp,Scheme,Racket,Sicp,我只是按照SICP的3.3.3中的说明创建表。 我写的代码运行得很好 以下是代码_0.scm: #lang scheme (require rnrs/base-6) (require rnrs/mutable-pairs-6) (define (make-table) (list '*table*)) (define (assoc key records) (cond ((null? records) false) ((equal? key (ca

我只是按照SICP的3.3.3中的说明创建表。 我写的代码运行得很好

以下是代码_0.scm:

#lang scheme

(require rnrs/base-6)
(require rnrs/mutable-pairs-6)

(define (make-table)
  (list '*table*))

(define (assoc key records)
  (cond ((null? records)
         false)
        ((equal? key (caar records))
         (car records))
        (else
         (assoc key (cdr records)))))

(define (insert! key value table)
  (let ((record (assoc key (cdr table))))
    (if record
        (set-cdr! record value)
        (set-cdr! table
                  (cons (cons key value)
                        (cdr table)))))
  'OK)

(define (lookup key table)
  (let ((record (assoc key (cdr table))))
    (if record
        (cdr record)
        false)))


(define table (make-table))

(insert! 0 0 table)
(insert! 1 1 table)
(insert! 2 2 table)
此外,我想在其他文件中将该表作为库引用,因此我编写了一个代码_1.scm

);另外:我现在删除了代码0中的“#lang scheme”

代码1.scm:

#lang scheme/load
(load "code_0.scm")

(define table-0 (make-table))

(insert! 0 0 table-0)
(insert! 1 1 table-0)
(insert! 2 2 table-0)
编译错误显示:

assoc:不是正确的列表:{{0.0}

这一切有什么不对


它是关于Scheme中的列表、DrRacket的问题或语言的版本/标准?

问题是,
assoc
是Scheme中现有的函数。尝试将函数重命名为my assoc,它将按预期工作。

它可以工作!所以错误:“func name:description”意味着它将是相同的问题(冲突)?