By "module file" I just meant a source code file where all definitions are enclosed in modules, so if you "include" it, it replaces the whole module. Thus
module M function f(x) x^2 end end then references to M.f are more likely to be consistent than a bare function f defined at the top level (the Main module). As you surmised, g = x -> x^2 binds the mutable variable with symbol :g to an anonymous function (i.e. one with a hidden name and type). If you bind :g to a different function, references to :g should always use the new association. Defining a regular function (like M.f above) embeds "f" as a name in the function object itself. The function object then points into method tables. You can't assign the name "f" to a different function object, just attach different methods to it. The troubles seem to arise from cached references to orphaned method table entries, which are not completely dissociated from the object named "f". On Saturday, October 8, 2016 at 5:09:19 PM UTC-4, digxx wrote: | what do u mean by "module files"? | So what is the difference between | f(x)=x^2 | and | f=x->x^2 is f(x)=x^2 not an anonymous function?!?! >