gpt4 book ai didi

racket - 未绑定(bind)标识符 Racket 运营商

转载 作者:行者123 更新时间:2023-12-04 00:30:20 27 4
gpt4 key购买 nike

这是我第一次使用 Racket ,我在尝试评估 Dr. Racket 中的列表时收到错误消息 (*: unbound identifier;)。

#lang racket
(define (randop)
(define x(random 3))
(cond
((= x 0) '+)
((= x 1) '-)
((= x 2) '*)
)
)

(define (randexp ht)
(define x(random 10))
(define y(random 10))
(define z(randop))
(eval (list z y x))
)

(randexp 1)

在控制台中执行 Racket 时, (eval lst) 工作正常,但当我执行此代码时,它会出现一个未绑定(bind)的标识符。任何帮助表示赞赏。

最佳答案

你不需要 eval 这里。不是返回符号而是返回过程:

#lang racket

(define (randop)
(define x (random 3))
(cond ((= x 0) +) ; + not quoted means if will return what + evaluates to
((= x 1) -) ; which is the procedures they represent
((= x 2) *)))

(define (randexp)
(define x (random 10))
(define y (random 10))
(define z (randop))
(z y x))) ; call z (the procedure returned by randop) with arguments x and y.

(randexp)

关于racket - 未绑定(bind)标识符 Racket 运营商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28947041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com