2022/07/31 –, TR212
言語: 漢語
閉包轉換是函數式編程語言編譯過程中的一項重要技術,本節將了解我們為什麼需要這個轉換、如何實現,順便了解一下 nanopass
閉包轉換是一種從任何表達式中刪除所有自由變量的轉換。通過把自由變量包裝進一個結構之中,再將 lambda 與它包裝進結構之中,就是一個閉包。 調用閉包時,調用者必須解開閉包以獲取 lambda 再獲取已包裝的自由變數,然後將 lambda 套用上原本就有的參數及已包裝的自由變數。對上述兩種描述,自動轉換程式的演算法就叫做閉包轉換。閉包轉換後任何 lambda 都不再有自由變量,因此可以繼續套用 C 或是 assembly 等語言的編譯轉換。
對語言實作有興趣的人
Difficulty –中階
youtube_link –racket 賜我娛樂、elixir 賜我吃穿