because I liked the excellent Lisp screencasts of Marco Baringer and Rainer Joswig and due to the lack of additional freely available stuff like the beforementioned, I've thought about creating comprehensive tutorial-like screencasts myself. So, during the past summer I began with the creation of a tutorial on writing a simple raytracer in Common Lisp, consisting of multiple screencasts. As I unfortunately do not have the time for further work on it, I finally decided to make the present state available.

Please note that I do not claim to be a Lisp uber-professional and thus you may or may not encounter a few mistakes. The ones I know about have been mentioned and corrected in the subsequent screencast respectively.

This basically defines a new setf expander. You might want to look up defun, defsetf and the like in the CL HyperSpec for a more detailed unterstanding. However, in the case of the matrix it allows an aref-like access of the matrices elements both for reading and writing.

Alexander Lehmann wrote:This basically defines a new setf expander. You might want to look up defun, defsetf and the like in the CL HyperSpec for a more detailed unterstanding. However, in the case of the matrix it allows an aref-like access of the matrices elements both for reading and writing.

Thank you very much for the help guys! I did look in the Hyperspec a bit but wasn't quite able to piece it all together.

August wrote:Thank you very much for the help guys! I did look in the Hyperspec a bit but wasn't quite able to piece it all together.

It's like that sometimes. Less so once you get the hang of its conventions and precise vocabulary, but look at how I got surprised by this way of defining setf expanders. I still have no idea where it's described.

Well, defun takes a function name as its first argument, and a function name is "1. (in an environment) A symbol or a list (setf symbol) that is the name of a function in that environment. 2. A symbol or a list (setf symbol)."