From 1e4e390c77a6726bf6605cf16dcc11e8aea451e7 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 24 Aug 2016 11:55:27 -0400 Subject: signal: Reimplement signal-fold. * sly/signal.scm (signal-fold): There was no need for using let-over-lambda. --- sly/signal.scm | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sly/signal.scm b/sly/signal.scm index c1f16e7..3f5972f 100644 --- a/sly/signal.scm +++ b/sly/signal.scm @@ -299,13 +299,11 @@ SIGNAL. PROC is applied with the current value of SIGNAL and the previously computed value, or INIT for the first call." (let ((inputs (cons signal rest))) (make-boxed-signal init - (let ((previous init)) - (lambda (self value) - (let ((x (apply proc - (append (map signal-ref inputs) - (list previous))))) - (set! previous x) - (%signal-set! self x)))) + (lambda (self value) + (let ((x (apply proc + (append (map signal-ref inputs) + (list (%signal-ref self)))))) + (%signal-set! self x))) inputs))) (define (signal-filter predicate default signal) -- cgit v1.2.3