Richard Shann <richard.sh...@virgin.net> skribis: > (if (defined? 'define-once) > (define-once ToggleTripleting::InsideTriplet #t) > (eval-string "(if (not (defined? 'ToggleTripleting::InsideTriplet)) > (define ToggleTripleting::InsideTriplet #t))"))
Rather something along these lines: (cond-expand ((not guile-2) (define-macro (define-once var expr) `(if (not (defined? ',var)) (define ,var ,expr)))) (guile-2 #t)) This will do nothing on Guile 2.0, and will define ‘define-once’ on 1.8. HTH, Ludo’.