[Openmcl-devel] multiple read-time conditionals, puzzlement

Arthur Cater arthur.cater at ucd.ie
Mon Mar 13 03:06:03 PDT 2023


Reading a bit of ccl’s sources I came across something that surprised me, and I thought it was neat. It was of the form

   #+feat #+feat
  :keyword argument

which I thought nicer than the sort of thing I’d been doing, namely  #+feat :keyword #+feat argument


But it set me thinking, and experimenting, and now I’m puzzled, and I wonder if anyone can explain this to me.



? 
NIL
? (setf *features* '(:a :b :c))
(:A :B :C)

? '(#+a #+a a b c)
(A B C)

? '(#+a #-b a b c)
(B C)

? '(#+a #+b #-c a b c)
(B C)

? '(#+a #-b #+c a b c)
(C)
? 


I thought I understood what was going on until this last one. Why does #-b cause both A and B to be skipped?

Arthur


More information about the Openmcl-devel mailing list