[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
conditional code segments
From: |
Matt Wette |
Subject: |
conditional code segments |
Date: |
Fri, 1 Jun 2018 16:37:10 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
In C I can use `#ifdef' .. `#endif' to "comment out" code segments.
In Scheme, one can use `#|' and '|#' which is OK but requires dealing with both
ends of the
segment to switch on / off. And emacs (v 24.5) scheme mode does not always
fontify the buffer
correctly with #|...|#.
I can use (if #f (begin ....)) but it's not pretty and indents 4 spaces (or an
ugly 1 space).
I tried using cond-expand but it does not work as expected:
scheme@(guile-user)> (cond-expand-provide (current-module) '(abc))
$1 = (abc)
scheme@(guile-user)> (cond-expand (abc #t))
While compiling expression:
Syntax error:
unknown file:2:0: cond-expand: unfulfilled cond-expand in form (cond-expand
(abc #t))
My current attempt is to add this:
(define-syntax-rule (if-true form ...) (begin form ...))
(define-syntax-rule (if-false form ...) (begin))
(if-false
(define x ...)
...
)
(if-true
(define x ...)
...
)
Any other solutions / suggestions?
- conditional code segments,
Matt Wette <=