guile-user
[Top][All Lists]
Advanced

[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?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]