Common Lisp representer 的正規化

概觀介紹 Common Lisp representer 對解答套用的各種正規化


representer 使用read讀取提交內容,並使用write寫出表示,同時也套用一些額外的正規化。 每份提交內容都會套用下列正規化:

移除註解

因為使用read載入提交內容,所以註解會被移除。

移除文件字串

這裡不嘗試正規化文件字串中可能出現的各種名稱,而是直接移除整段字串。 不過表示會記錄是否曾經出現過文件字串。

正規化文字大小寫

因為使用read載入提交內容,所有符號都會被正規化為大寫。

正規化文字格式

表示是以write寫出的,因此提交內容在格式上的任何細節(例如縮排、間距、把右括號留在空行上)都不會保留在表示中。

正規化符號名稱

諸如函式、變數和巨集的名稱,以及套件,都會對應到gensyms,並在表示中使用。