R5RS说匹配值例子...如何实现呼叫与值在R5RS
值可能被定义如下:
(define (values . things) (call-with-current-continuation (lambda (cont) (apply cont things))))
没有,不过,请说明如果通过这种方式实现值,可以如何实现与值调用。所以,如果以这种方式实现值,那么如何实现值调用? (这是因为我试图获得一些使用call-with-value来处理TinyScheme的代码,它不支持它,我通过伪造值和使用列表调用值进行管理,但是, - 当我看到这个在R5RS,我想知道这可能是一个更好的解决方法)
您提供的基于列表的版本正是我使用的版本。应该注意的是,除了优化差异之外,还可以将值的“真实”实现用作身份识别功能,该解决方法可以解决此问题。 (而且我实际上碰到了我正在使用的代码。) –
所以,现在我想知道为什么R5RS甚至包含这个例子。 –
@RobertFisher通过使用Kent Dybvig的神奇令牌技巧,您可以将其作为身份使用。 RnRS规范是(也)在那里的实施者,所以这是我脑海中的实施提示。我想象(有趣的)=> b就在申请之前,在申请之前有一个有趣的堆栈,并且在完全CPS版本的计划之后继续。 – Sylwester