The point of these "unsafe" or mutating operations in my generic lisp package is NOT that people will be writing code using them, but that a compiler (lisp-into-lisp) can use them. For example, if you run an expression through the small compiler that I provide, it allocates (or uses previously allocated) "temporary registers" to do a whole bunch of in-place arithmetic.
e.g. if you do an assignment a:=a+b, and there is no secret access to the value for a, then you can do something like unsafe_add(a,b,a) ;; where you designate the target, and overwrite. This is really a big savings if you do it in a loop and sum up a bunch of terms. There should be almost no need for direct human use of such code, just as, in a properly designed language, you should have almost no need to allocate and free memory. RJF -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org