1
A
回答
1
自由變量是Lambda微積分中的一個特殊情況 - 它們不能被「轉換」爲任何東西,所以通常它們只被視爲符號。顯然
mk_app(mk_app(mk_app(mk_sym("x"),
mk_lam("x",
mk_lam("y",
mk_app(mk_var("x"),
mk_var("y"))))),
mk_sym("z")),
mk_sym("h"));
,您可以使用mk_var()
那些:在你的榜樣,並給出了lambda表達式一些虛構的構造函數,你把它翻譯爲以下(包括對付隱鑽營)C類的表達符號也是如此,但這會誤導,因爲它們不是真正的變量,因爲它們沒有綁定。換句話說,如果你對錶達式進行了任何alpha轉換,他們將不得不保持不變。
(順便說一下,這裏的相關部分是Barendregt的自由變量假設。)
4
轉換演算爲C代碼是不平凡的。通常你會寫一個解釋器,逐步評估。也就是說,將表達式轉換爲樹,並找到最接近根節點的節點,該節點是左側爲lambda的應用程序。現在替換在右側。重複,直到你不能再申請,並且你有結果。
請注意,這裏沒有直接等價於自由變量;我們只是用它們來知道在哪裏取代東西。
請記住,圖靈等價不需要精確兩個圖靈完備語言中的任何概念之間的等價性。它只是要求你能夠與另一個模擬一個,反之亦然。
相關問題
- 1. lambda微積分xor表達式通過真假
- 2. 斯卡拉lambda微積分
- 3. Lambda微積分幫助
- 4. 在lambda微積分中,如果將表達式應用於非函數表達式會怎樣?
- 5. 在lambda微積分值中調用
- 6. lambda微積分中的Eta抽象
- 7. Lambda微積分的Beta縮減
- 8. 非遞推lambda微積分函數
- 9. Lambda微積分免費可變問題
- 10. 正則表達式驗證的集成式(微積分)
- 11. Lambda表達式
- 12. Lambda表達式
- 13. Lambda表達式
- 14. Lambda表達式
- 15. lambda表達式
- 16. Lambda表達式
- 17. Lambda表達式
- 18. Lambda表達式
- 19. Lambda表達式
- 20. Lambda表達式與表達
- 21. 在PID(比例積分微分)的比例積分微分
- 22. 爲什麼我們在達到這個期限後停止? Lambda微積分
- 23. VB.NET Lambda表達式
- 24. Linq Lambda表達式
- 25. lambda表達式樹
- 26. 與lambda表達式
- 27. Slow Lambda表達式
- 28. 從lambda表達式
- 29. C++ lambda表達式
- 30. 在lambda表達式