0
我們可以定義一個新的功能是這樣的:爲什麼我們可以用一個內置函數球拍定義一個同名的函數?
(define (car x y) (+ x y))
而且使用car
作爲一個附加功能。同時,我們失去了內置功能car
。爲什麼球拍允許這樣做?我們如何恢復丟失的內置函數,這裏是car
。
我們可以定義一個新的功能是這樣的:爲什麼我們可以用一個內置函數球拍定義一個同名的函數?
(define (car x y) (+ x y))
而且使用car
作爲一個附加功能。同時,我們失去了內置功能car
。爲什麼球拍允許這樣做?我們如何恢復丟失的內置函數,這裏是car
。
定義僅影響當前模塊(並且,如果導出定義,則導出模塊的任何其他模塊)。如果您想在您的模塊中使用car
以獲取其他內容,您可以始終以不同的名稱導入Racket的內置功能。例如:現在
(require (only-in racket/base (car racket-car)))
,您可以使用racket-car
指內置car
功能。
這個問題實際上取決於語言水平。如果您使用的是初學者級語言,試圖隱藏內置的名稱是語法錯誤。例如BSL中的'(定義第一個「1st」)會引發語法錯誤:'first:這個名字是先前定義的,不能被重新定義。 – dyoo