Remove function definition (unalias equivalent) [duplicate]

I'm currently building a program which adds to the current user's shell depending on the project he's working on, by defining per-project aliases and functions. These aliases and functions may and will certainly have the same name like for instance cdproj, which would cd to the project's root.

I would like to remove previously defined aliases and functions when changing project (before (re)defining aliases and functions for the other project. I know I can remove an alias with unalias in both bash and zsh, but how would I do the same for a function?


Solution 1:

unset -f my_function

will remove (or unset) the function my_function

Solution 2:

unfunction my_function in zsh

Perhaps, I'm a bit late in this good old '15, but this feature persists.