From cb6f2686e98bc964251951f33b8e597de25574a5 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 30 Nov 2014 13:51:54 -0500 Subject: signal: Add signal-every and signal-since. * sly/signal.scm (signal-every, signal-since): New procedures. --- sly/signal.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sly/signal.scm b/sly/signal.scm index da4e1dc..20d5ba6 100644 --- a/sly/signal.scm +++ b/sly/signal.scm @@ -50,6 +50,7 @@ signal-tap signal-timestamp signal-sample + signal-every signal-since signal-delay signal-throttle signal-generator)) @@ -347,6 +348,17 @@ every DELAY ticks of the current agenda." "Create a new signal that delays propagation of SIGNAL by DELAY ticks of the current agenda." (make-boxed-signal (signal-ref signal) +(define (signal-every step) + "Create a new signal that emits STEP every STEP ticks." + (signal-sample step (make-signal step))) + +(define (signal-since step signal) + "Create a new signal that emits the time since the last value was +received from SIGNAL in STEP increments." + (signal-map (lambda (time) + (- (agenda-time) time)) + (signal-sample step (signal-time signal)))) + (lambda (self value) (schedule (lambda () -- cgit v1.2.3