在Scheme中的条件表达式中使用define

在Scheme中,过程定义的一般形式为:

(定义(名称> 参数>) body >)

其中 body >接受一个表达式序列,从而允许这种过程定义:

> (define (f) 1 2 3)
> (f)
3

同样,条件表达式的一般形式为:

(cond(谓词> 必然>)(谓词> 必然>)… (谓词> 必然>))

其中每个子句中的随后>接受一系列表达式,从而允许这种条件表达式:

> (cond (#t 1 2 3))
3

但是为什么我不能在条件表达式的结果子句中使用define呢?

比较:

> (define (f) (define x 1) (define y 1) (define z 1) (+ x y z))
> (f)
3

具有:

> (cond (#t (define x 1) (define y 1) (define z 1) (+ x y z)))
ERROR on line 1: unexpected define: (define x 1)

注意。 —我正在MacOS 10.15.2上使用Chibi-Scheme 0.8.0实现。

maquanying 回答:在Scheme中的条件表达式中使用define

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2747191.html

大家都在问