From 2159664c2a5c71b1e2a4cee4b9dd087fad6aa9a2 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sat, 6 Jun 2015 17:30:19 -0400 Subject: signal: Redefine the semantics of signal-let and signal-let*. * sly/signal.scm (signal-let, signal-let*): Reimplement. --- sly/signal.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sly/signal.scm b/sly/signal.scm index f5dd3cf..9547f17 100644 --- a/sly/signal.scm +++ b/sly/signal.scm @@ -184,15 +184,15 @@ be coerced into one." #'(define name (make-signal-maybe value)))))) (define-syntax-rule (signal-let ((var signal) ...) body ...) - ((lambda (var ...) body ...) (signal-ref signal) ...)) - -(define-syntax signal-let* - (syntax-rules () - ((_ ((var signal)) body ...) - (signal-let ((var signal)) body ...)) - ((_ ((var signal) . rest) body ...) - (signal-let ((var signal)) - (signal-let* rest body ...))))) + "Similar to 'let', but produces a signal whose value is dependent +upon all signals in the bindings list." + (signal-map (lambda (var ...) body ...) signal ...)) + +(define-syntax-rule (signal-let* ((var signal) ...) body ...) + "Similar to 'signal-let', but the signal variable bindings are +performed sequentially." + (let* ((var signal) ...) + (signal-map (lambda (var ...) body ...) var ...))) ;;; ;;; Signal Combinators -- cgit v1.2.3