let只是lambda的语法糖而已,所以lambda的计算顺序是什么,let的计算顺序就是什么,
确切的说是apply,
也就是先计算body,从环境中获取body的最终值,
然后计算参数,从环境中计算中参数的实际值,
将参数的实际值,应用到body的最终值上
(let ((<var1> <exp1>) ... (<varn> <expn>))
<body>)
在<body>
中可以直接使用<var1>...<varn>
代表<exp1>...<expn>
,这样的局部变量定义的写法实际上是
((lambda (<var1> ... <varn>)
<body>)
<exp1>
...
<expn>)
的语法糖。