如何在Gambit方案中使用let-values?

问题描述 投票:0回答:1

我正在测试变量的重新定义是否可以在Scheme中工作,在Gambit中测试了这段代码:

(let-values ((x (values 1 2 3))
             (x (values 4 5 6)))
  (display x)
  (newline))

看看输出是什么。但是 Gambit 抛出了一个错误:

未绑定变量:let-values

但是我检查了源代码并且let-values 已实现。如何在 Gambit 中使用此名称。它可能与库有关,但我不知道如何在 Gabmit 中使用它们。

我已经尝试过:

(import gambit)

但出现错误:

未绑定变量:导入

我正在用

gsi file.scm

执行策略
scheme gambit
1个回答
0
投票

使用策略 4.9.5:

> (let-values ((x (values 1 2 3))
             (x (values 4 5 6)))
  (display x)
  (newline))
*** ERROR IN (stdin)@5.15 -- Duplicate variable in bindings

它不允许您在绑定中重复使用标识符; R7RS 谈到

let-values

变量在

<formals>
集合中出现多次是错误的。

解决这个问题,它就可以工作了:

> (let-values ((x (values 1 2 3))
             (y (values 4 5 6)))
  (display x)
  (newline))
(1 2 3)

我无法复制根本看不到

let-values
的错误;您问题中的最小完整可验证示例将有助于追踪问题。

© www.soinside.com 2019 - 2024. All rights reserved.