TL;DR:如何定义一个可以用作(let-values ((foo bar) (foobar)) ...)
的过程foobar
R7RS定义了计算商和的floor/
和truncate
两个过程。两个数除以的余数。我发现这真的很棘手,因为我只能在let-values
(或let*-values
)中使用这些程序。一个更重要的问题是,我找不到一种方法来定义我自己的返回多个值的过程。
有人有什么想法吗?
注意:
floor/
和truncate/
的定义在报告第37页的顶部。- 我没有足够的运气成功地安装任何r7rs兼容的解释器或编译器,所以我还没有测试上述任何想法。如果需要的话,我有机会会更新这个问题。
你试过values
了吗?报告在第53页提到了这件事。
(define (foobar)
(values 1 2))
(let-values (((foo bar) (foobar)))
(cons foo bar))