【发布时间】:2014-03-18 22:40:10
【问题描述】:
我一直是这样编写我的 Scheme 程序(并看到它们编写的):
(define (foo x)
(let ((a ...))
((b ...))
...))
我的一个学生写道:
(define (foo x)
(define a ...)
(define b ...)
...)
两者都给出相同的结果。我理解行为上的差异:第一个创建一个指向程序应用程序框架的新框架,而后者直接修改程序应用程序框架。后者会产生更好的性能。
另一个区别是前者避免在过程体中的指令序列之前使用隐式begin。
为什么是以前的标准样式?
【问题讨论】:
标签: coding-style scheme let