 in psd2d.
IDL differentiate between functions and procedure. Code syntax is rough (do begin end, -&gt; for methods, comparison operators), but very clear to read.
For example, allows to understand if modify object (procedure) or
return a result (function). Nobody forbids to a function to modify the argument (e.g. if I modify an object or a variable inside a function, are these changes reflected outside?), however it is usually (always?) not needed, because there is a procedure for that. This also enforces 