From f36ee4549eca5a6754289befdda9bf9cc93a0ee9 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 10 Feb 2016 21:58:41 -0500 Subject: signal: Add signal-if. * sly/signal.scm (signal-if): New syntax. --- sly/signal.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sly/signal.scm b/sly/signal.scm index 5bd9a29..42cce40 100644 --- a/sly/signal.scm +++ b/sly/signal.scm @@ -48,6 +48,7 @@ signal-drop signal-drop-repeats signal-switch + signal-if signal-constant signal-count signal-tap @@ -341,6 +342,9 @@ signal PRED is true, or the value of the signal OFF otherwise." (%signal-set! self (current-value))) (list predicate))) +(define-syntax-rule (signal-if predicate consequent alternate) + (signal-map (lambda (true?) (if true? consequent alternate)) predicate)) + (define (signal-constant constant signal) "Create a new signal whose value is always CONSTANT no matter the value of SIGNAL." -- cgit v1.2.3