for 到 while
可以轉換成
迴圈如何變成尾遞迴
其中 $bodyExp_n$ 可以為下列之一:
- 解析失敗 (MathML 使用 SVG 或 PNG 備用 (建議用於現代瀏覽器與輔助工具):從伺服器 "https://wikimedia.org/api/rest_v1/" 收到無效的回應 ("Math extension cannot connect to Restbase.")。): {\displaystyle oldVar_j := f(calledVar_1, [calledVar_2,...])}
- 解析失敗 (MathML 使用 SVG 或 PNG 備用 (建議用於現代瀏覽器與輔助工具):從伺服器 "https://wikimedia.org/api/rest_v1/" 收到無效的回應 ("Math extension cannot connect to Restbase.")。): {\displaystyle newVar_j = f(calledVar_1, [calledVar_2,...])}
- 當然還有部分調用、全部調用
-
-
可以分析 有哪些? 有哪些?
設 , 則
while 迴圈就可以變成新的遞迴函數 ,如下:
字串是什麼? →其實可以表示為很大的數字。
所以,要用鏈表表示也是可行的。
閉包
```
(x)=>{foo(x, free_vars)}
```
轉換
```
ThunkAnnoy8964 thunkannoy8964(TypeOfX x ,TypeFreeVars env){
foo(x, env[free_vars]);
}
struct ClosureTypei1r1 {
TypeFreeVars env, # 可以用鏈表
*ThunkAnnoy8964 thunk,
};
ClosureTypei1r1 annoy8964;
TypeFreeVars env = free_vars;
annoy8964.env = env;
annoy8964.thunk = *thunkannoy8964;
```
調用
```
lambda(x){body}(n);
```
改為
```
annoy9864.thunk(n, annoy8964.env);
```