I think my Lisp style is rather more imperative in flavour than most
modern Lisp programmers. It's probably closer to historical Lisp
-practice in that regard, even though I wasn't writing Lisp back then.
+practice in that regard, even though I wasn't writing Lisp back then. A
+lot of this is because I don't assume that the Lisp implementation
+handles tail calls properly: Common Lisp is not Scheme.
I make extensive use of CLOS, and macros. On a couple of occasions I've
made macros which use CLOS generic function dispatch to compute their
expansions. The parser language is probably the best example of this in
the codebase.
-I like hairy ~format~ strings.
+I like hairy ~format~ strings. I've intentionally opted to leave them
+as challenges to the reader rather than explain them.
I've avoided hairy ~loop~ for the most part, not because I dislike it
strongly but because others do and I don't find that it wins big enough
Then there's package stuff. There may be a ~cl:defpackage~ form (with
explicit package qualifier) if the relevant package doesn't have its own
-package definition file.
+package definition file. I use gensyms to name packages: strings don't
+seem right, and symbols would leak into some unrelated package.
Then there's ~cl:in-package~. Like ~defpackage~, I use a gensym to name
the package. I can't think offhand of a good reason to have a file with
#+LATEX_CLASS: strayman
## LocalWords: CLOS ish destructure destructured accessor specializers
-## LocalWords: accessors DSLs gensym
+## LocalWords: accessors DSLs gensym gensyms
## Local variables:
## mode: org