In both c and fortran, the programmer is free to ignore the const modifier and mutate its inputs -- although the compiler will try to emit a warning. Instead, Julia opts to suggest that programmers avoid modifying arguments, and use a bang (!) to notate a function that will modify an input.
Return type annotation simply has not been implemented. Typically, Julia encourages leaving off type annotations since the compiler can infer them, so it simply hasn't been a priority. On Thursday, June 12, 2014, <[email protected]> wrote: > Both C++ and Fortran 90 allow the programmer to annotate call-by-reference > arguments to a function as to whether the function is allowed to change > them (this is denoted const & in C++). The compiler then enforces the > const-ness of the argument. I don't see how to do this in Julia. Is it > available? If not, is there a reason why it was not included? This is a > fairly basic tool for self-documenting code and for ensuring program > correctness. > > And a related question: the documentation makes a big deal about "stable > types" for function return arguments. An obvious question is why the > language doesn't allow the programmer to declare in the function heading > what will be the return types of the function, and then have the compiler > enforce this stability. Is this possible in Julia? If not, is there a > technical reason for omitting it? > > Thanks, > Steve Vavasis > > P.S. I have a few more questions but I'll pause now to wait for answers to > these questions. I hope they are easy to answer! >
