Re: #;
- From: Kaz Kylheku <kkylheku@xxxxxxxxx>
- Date: Sun, 30 Dec 2007 12:04:46 -0800 (PST)
On Dec 30, 7:37 am, verec <ve...@xxxxxxx> wrote:
And *I* find it usefull to be able to comment out
a _line_ with something that clearly states
"this not an ordinary line comment, but a comment-out comment".
What if the expression you want to comment out spans more than one
line?
The usual way is this:
#+IGNORE
(commented
out form)
I have seen many examples using #+nil for this
That and #+IGNORE will break if someone adds IGNORE or NIL to
*FEATURES*.
What will not break is #+(or). This actually has the meaning of
ignoring the following expression no matter what.
#+(or S1 S2 ...) means to scan the following expression if any of the
symbols S1 S2 ... are in *FEATURES*. If OR has no arguments, then no
symbol can enable the following statement.
#+NIL breaks in the historic implementation known as the New
Implementation of Lisp which supposedly identified itself with NIL in
*FEATURES*. :)
purpose, but this precisely doesn't work for
incomplete expressions whereas:
(defun foo (n)
(cond
#; treat this special case later
#; ((= n 1)
#; (foo-1 n))
The cond-pair above /is/ a complete expression (the parentheses
balance).
[1]> '(a b #+(or) (c d) (e f))
(A B (E F))
In what way do you perceive that it doesn't work?
When would you ever want to comment out incomplete expressions? The
part which makes them complete would then be left dangling, probably
causing a syntax error, unless there is a compensating hack.
;; comment out incomplete expr
;; (a b
c d)
oops!
Maybe if you wanted to change the nesting level of something,
temporarily?
'( a b
;; (
c
;; )
)
.