Как убрать функцию в Julia REPL?
Как удалить функцию, созданную при работе в Julia REPL? Можно ли это сделать без перезапуска сеанса? Это пришло мне в голову, потому что я создал функцию с неправильным вводом типа, затем сделал это правильно, но не смог избавиться от старого.
В разделе часто задаваемых вопросов по адресу http://docs.julialang.org/en/release-0.4/manual/faq/ говорится:
Julia does not have an analog of MATLAB’s clear function; once a name is
defined in a Julia session (technically, in module Main), it is always present.
1 ответ
Вы не можете удалить функцию без перезапуска REPL (Julia v0.4). То же самое касается типов данных.
Это связано с тем, как работает механизм типов Джулии, но, к сожалению, я слишком мало знаю об этом для более подробного объяснения.
Предполагая, что вы определили функцию
xx(x) = 42
ты можешь найти
m = @which xx(1)
и удалите метод с помощью
Base.delete_method(m)
Запись Base.delete_method(xx)
не будет работать, т.е. вы не избавитесь от новой функции (с именем xx
) нравится:
julia> xx
xx (generic function with 0 methods)
=> Имя функции xx
по-прежнему известен, но метод, который вы определили, больше не существует. Но для удаления "функции с вводом неправильного типа", как вы просили, это, вероятно, будет тем решением, которое вам нужно.
(На основе этой темы.)
Вот ссылка, на которую ссылается документация Юлии.
Нет способа удалить функцию, поэтому лучше всего перезапустить терминал.
https://docs.julialang.org/en/latest/manual/faq/
Надеюсь, это скоро изменится