小编KIM*_*oon的帖子

神秘的球拍错误:定义:未绑定的标识符; 此外,没有#%app语法变换器绑定在:define中

该程序产生错误:

define: unbound identifier;
 also, no #%app syntax transformer is bound in: define
Run Code Online (Sandbox Code Playgroud)

当粘贴到REPL中(确切地说,最后一行:(displayln(eval-clause 子句 状态))),它可以工作.在定义窗口中运行时,它会失败.我不知道为什么.

#lang racket
(define *state* '((a false) (b true) (c true) (d false)))
(define *clause* '(a (not b) c))

(define (eval-clause clause state)
  (for ([x state])
    (eval `(define ,(first x) ,(second x))))
  (eval (cons 'or (map eval clause))))

(displayln (eval-clause *clause* *state*))
Run Code Online (Sandbox Code Playgroud)

这个也是:

(define (eval-clause clause state)
  (eval `(let ,state ,(cons 'or clause))))
Run Code Online (Sandbox Code Playgroud)

产生

let: unbound identifier;
 also, no #%app syntax transformer is bound …
Run Code Online (Sandbox Code Playgroud)

lisp racket

8
推荐指数
1
解决办法
4332
查看次数

标签 统计

lisp ×1

racket ×1