0

TL;DR:如何定义foobar可用作(let-values ((foo bar) (foobar)) ...).


R7RS 定义了两个过程floor/truncate,计算两个数相除的商余数。我发现这真的很棘手,因为我只能将这些过程与let-values(or let*-values) 一起使用。一个更重要的问题是我找不到一种方法来定义我自己的返回多个值的过程。

有人有什么想法吗?

笔记:

  • floor/和的定义在报告truncate/第 37 页的顶部。
  • 我没有幸运地成功安装任何符合 R7RS 的解释器或编译器,所以我还没有测试过上述任何想法。当我有机会时,如果需要,我会更新这个问题。
4

1 回答 1

2

你试过了values吗?该报告在第 53 页提到了这一点。

(define (foobar)
  (values 1 2))

(let-values (((foo bar) (foobar)))
  (cons foo bar))
于 2021-08-14T16:38:43.947 回答