Hi, I am wondering what the best workflow is for iterative/exploratory programming (as opposed to, say, library development). I feel that my questions below all have solutions, it's just that I am not experienced enough in Julia to figure them out.
The way I have been doing it so far: 1. open a file in the editor, 2. start `using` some libraries, 3. write a few functions, load data, plot, analyze 4. rewrite functions, repeat 2-4 until satisfied. I usually end up with a bunch of functions, followed by the actual runtime code. However, I run into the following issues (or, rather, inconveniences) with nontrivial code: a. If I redefine a function, then I have to recompile dependent functions, which is tedious and occasionally a source of bugs (cf. https://github.com/JuliaLang/julia/issues/265 ) b. I can't redefine types. I can solve both by restarting (`workspace()`), but then I have to reload & recompile everything. I am wondering if there is a more organized way of doing this --- eg put some stuff in a module in a separate file and just keep reloading that, etc. Any advice, or pointers to tutorials would be appreciated. I am using Emacs/ESS. Also, is there a way to unintern symbols (a la CL) that would solve the type redefinition issue? Best, Tamas