letrecletrec*都在R6RS中,但是在Racket中有only letrec,没有letrec*。这些之间有什么区别?

最佳答案

简而言之, Racket 的letrec和R6RS的letrec*是相同的。
为此指定了评估顺序。
在R5RS letrec中,顺序未指定。

由于R5RS letrec的顺序未指定,实现可以选择
固定顺序(例如从左到右),否则它们可以让编译器
为每次使用选择不同的顺序(以获取更快的代码)。

从 Racket 文档中。

R5RS letrec:



Racket letrec:



R6RS letrec* :

关于scheme - R6RS的 `letrec`, `letrec*`和Racket的 `letrec`有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20440688/

10-09 08:07