Michael Weber: Random Bits and Pieces

Lisp Logo (by Conrad Barsky)

Dozsa et al., "How Lisp Systems Look Different"

In this paper we propose a suite of new visualizations that reveal the special traits of the Lisp language and thus help in understanding complex Lisp systems. To validate our approach we apply them on several large Lisp case studies, and summarize our experience in terms of a series of recurring visual patterns that we have detected.

One of the case studies is SBCL.

Lisp Logo (by Conrad Barsky)

It amused me for while that I found myself writing something similar to the following piece of code:


(defun %apply (function arg &rest args)
  (apply #'apply function arg args))

(defun %funcall (function &rest args)
  (%apply function args))

I will leave it to you, dear reader, to figure out what the double APPLY is good for. Surprisingly, there is even some reason behind this madness, namely the ability to mangle the function argument before calling.