diff --git a/tk/listlogic.scm b/tk/listlogic.scm index 801db55..a1797b4 100644 --- a/tk/listlogic.scm +++ b/tk/listlogic.scm @@ -1,5 +1,6 @@ (define-module (tk listlogic) - #:export (flatten + #:export (display-if-not + flatten lp& l& if-some @@ -57,3 +58,14 @@ (syntax-rules () ((if-some-else $cond $else) (if $cond $cond $else)))) + +;; Prints the message if condition is #f, otherwise prints nothing +(define-syntax display-if-not + (syntax-rules () + ((display-if-not $cond) + (syntax-error "Must provide a string to (display-if-not)")) + ((display-if-not $cond $message) + (begin (if (not $cond) (display $message)) + (newline))) + ((display-if-not $cond . $messages) + (display-if-not $cond (string-concatenate/shared '$messages)))))