我已閱讀forthcoming R7RS scheme standard (small language)的當前草稿,但我不明白在何種情況下重新定義頂級綁定並不是錯誤。什麼時候可以覆蓋(R7RS)方案中的頂級綁定?
我想有可能定義或設置!第二次在程序頂層引入的綁定。但是從外部庫導入的綁定呢?是否有可能通過標準覆蓋這些綁定?
報告第26/27頁,它說:
程序的頂層也可以包括進口報關手續。 在庫聲明中,使用不同的綁定, 多次導入 相同的標識符或使用define, define-syntax或set!重新定義或變更導入的綁定是錯誤的。但是,REPL應該允許 這些操作。
這是否意味着重新定義只是在導入綁定的庫中發生時發生錯誤?
據我所知,如果編譯器不知道,如果+仍然意味着內置的添加或是任何其他用戶指定的錯誤,則禁止編譯器進行優化。但是從這個角度來看,限制禁止在圖書館級重新綁定是沒有意義的,至少在程序中導入綁定也是有意義的。
P.S .:因爲這完全是關於計劃方案的環境:我是否認爲環境不是一流的公民,因爲人們無法掌握當前的環境? (這又允許編譯的程序忘記綁定的選定名稱)。