绑定标识符 - DrRacket
问题描述:
我学习方案,并为实例和实践metacircular解释工作,和我收到以下错误:绑定标识符 - DrRacket
set-car!: unbound identifier in module in: set-car!
,是由下面的代码导致错误:
(define (add-binding-to-frame! var val frame)
(set-car! frame (cons var (car frame)))
(set-cdr! frame (cons val (cdr frame))))
我有两个问题......首先,错误是什么意思?其次,我错过了一个let函数吗?
答
在球拍由cons
分配的一对是不可变的设计 - 因此没有set-car!
。要分配可变对,请使用mcons
。要突变可变对,请使用set-mcar!
和set-mcdr!
。
这是一个完整的程序:
#lang racket
(define p (mcons 1 2))
(set-mcar! p 3)
p
检查这个问题,它可以帮助http://stackoverflow.com/q/9475366/1197333 – Ivancho 2014-11-21 18:15:47
#球拍(完全不同的语言比计划)不是!有'set-car!'和'set-cdr!'。改用#!r6rs。 – Sylwester 2014-11-21 18:18:37