如何在Julia中恢复覆盖的内置函数

时间:2017-01-11 15:28:28

标签: julia

这个问题也可能适用于其他语言。

如果我使用内置函数名作为变量名, 我可以通过执行以下操作来恢复该功能:

all = 123
all = Base.all

但是如果我定义了一个自定义函数sum()然后我做了,

sum = Base.sum

我收到错误说"无效重新定义常数和#34;

如果我覆盖它,有没有办法恢复内置函数?或者这是不可能的设计?

2 个答案:

答案 0 :(得分:2)

对于此示例,您只需将sum重新定义为Base.sum

sum(x) = Base.sum(x)

这是你想要的吗?

NB。这可能不会覆盖"你对和的定义。如果它使用类型参数(例如sum(x::Vector),它仍可能优先于普通sum(x)发送,在这种情况下,您需要对这些特定方法重复上述操作。

答案 1 :(得分:1)

如果您在使用REPL时只是一个问题,并且不介意丢失所有其他定义,则可以workspace()重置Main。< / p>