(define (tc3 l k)
(cond
[(null? l) (k '())]
- [(eqv? #\# (car l)) (append (k '()) (tc3 (cdr l) identity))]
+ ; [(eqv? #\# (car l)) (append (k '()) (tc3 (cdr l) identity))]
+ [(eqv? #\# (car l)) (k (tc3 (cdr l) identity))]
[(eqv? #\S (car l)) (tc3 (cdr l) (compose k k))]
[else (tc3 (cdr l) (lambda (tail) (k (cons (car l) tail))))]))
(shift k
(cond
[(null? l) (identity (k '()))]
- [(eqv? #\# (car l)) (append (k '()) (reset (tr3 (cdr l))))]
+ ; [(eqv? #\# (car l)) (append (k '()) (reset (tr3 (cdr l))))]
+ [(eqv? #\# (car l)) (k (reset (tr3 (cdr l))))]
[(eqv? #\S (car l)) ((compose k k) (tr3 (cdr l)))]
[else ((lambda (tail) (k (cons (car l) tail))) (tr3 (cdr l)))])))