Skip to content

Instantly share code, notes, and snippets.

@cbarrett
Last active December 12, 2015 05:28

Revisions

  1. cbarrett revised this gist Feb 6, 2013. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions delim-cont-reactive.rkt
    Original file line number Diff line number Diff line change
    @@ -12,9 +12,9 @@
    ;; helpers

    (define (add-subscriber s n e c) (s n e c))
    (define (send-next s v) (s (list 'next v)))
    (define (send-error s e) (s (list 'error e)))
    (define (send-complete s) (s (list 'complete)))
    (define (send-next k v) (k (list 'next v)))
    (define (send-error k e) (k (list 'error e)))
    (define (send-complete k) (k (list 'complete)))

    ;; example usage. prints "hello, ""world!""done"

  2. cbarrett revised this gist Feb 6, 2013. 1 changed file with 12 additions and 7 deletions.
    19 changes: 12 additions & 7 deletions delim-cont-reactive.rkt
    Original file line number Diff line number Diff line change
    @@ -9,15 +9,20 @@
    [(list 'error e) (error e)]
    [(list 'complete) (complete)])))

    (define (add-subscriber s n e c) (s n e c)) ;; helper
    ;; helpers

    (define (add-subscriber s n e c) (s n e c))
    (define (send-next s v) (s (list 'next v)))
    (define (send-error s e) (s (list 'error e)))
    (define (send-complete s) (s (list 'complete)))

    ;; example usage. prints "hello, ""world!""done"

    (let ([signal (create-signal (lambda (subscriber)
    (subscriber (list 'next "hello, "))
    (subscriber (list 'next "world!"))
    (subscriber (list 'complete))))])
    (send-next subscriber "hello, ")
    (send-next subscriber "world!")
    (send-complete subscriber)))])
    (add-subscriber signal
    (lambda (next) (print next))
    (lambda (error) (print (string-append "! " error)))
    (lambda () (print "done"))))
    (lambda (next) (displayln next))
    (lambda (error) (displayln (string-append "! " error)))
    (lambda () (displayln "done"))))
  3. cbarrett created this gist Feb 6, 2013.
    23 changes: 23 additions & 0 deletions delim-cont-reactive.rkt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    #lang scheme
    (require racket/control)
    (require racket/match)

    (define (create-signal didSubscribe)
    (lambda (next error complete)
    (match (shift k (didSubscribe k))
    [(list 'next v) (next v)]
    [(list 'error e) (error e)]
    [(list 'complete) (complete)])))

    (define (add-subscriber s n e c) (s n e c)) ;; helper

    ;; example usage. prints "hello, ""world!""done"

    (let ([signal (create-signal (lambda (subscriber)
    (subscriber (list 'next "hello, "))
    (subscriber (list 'next "world!"))
    (subscriber (list 'complete))))])
    (add-subscriber signal
    (lambda (next) (print next))
    (lambda (error) (print (string-append "! " error)))
    (lambda () (print "done"))))