STYLE: Expand on a couple of remarks.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 27 Jul 2019 13:12:26 +0000 (14:12 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 3 Aug 2019 15:27:39 +0000 (16:27 +0100)
STYLE

diff --git a/STYLE b/STYLE
index b07bd98..96eb0f2 100644 (file)
--- a/STYLE
+++ b/STYLE
@@ -6,14 +6,17 @@ None of ANSI Common Lisp is off-limits.
 
 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
@@ -152,7 +155,8 @@ special effects.
 
 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
@@ -308,7 +312,7 @@ mixed in there, but it's more work than seems worthwhile.
 #+LATEX_CLASS: strayman
 
 ## LocalWords:  CLOS ish destructure destructured accessor specializers
-## LocalWords:  accessors DSLs gensym
+## LocalWords:  accessors DSLs gensym gensyms
 
 ## Local variables:
 ## mode: org