unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* conditional code segments
@ 2018-06-01 23:37 Matt Wette
  2018-06-02  1:11 ` Alex Vong
  2018-06-02  1:56 ` Mark H Weaver
  0 siblings, 2 replies; 4+ messages in thread
From: Matt Wette @ 2018-06-01 23:37 UTC (permalink / raw)
  To: guile-user

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?





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-06-02  2:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-01 23:37 conditional code segments Matt Wette
2018-06-02  1:11 ` Alex Vong
2018-06-02  1:56 ` Mark H Weaver
2018-06-02  2:34   ` Matt Wette

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).