为什么我们可以定义一个与内置函数Racket同名的函数?

时间:2014-04-17 21:49:25

标签: function scheme racket

我们可以定义一个这样的新函数:

(define (car x y) (+ x y))

并使用car作为添加功能。同时,我们丢失了内置函数car。为什么Racket允许这样做?我们如何恢复丢失的内置函数,这里是car

1 个答案:

答案 0 :(得分:2)

定义仅影响当前模块(如果导出定义,则导入模块的任何其他模块)。如果您想在模块中使用car来获取其他内容,则可以始终以不同的名称导入Racket的内置函数。例如:

(require (only-in racket/base (car racket-car)))

现在,您可以使用racket-car来引用内置的car功能。