Use (== expr) pattern in matches

This commit is contained in:
Tony Garnock-Jones 2012-01-13 17:01:06 -05:00
parent a4eb28f5c5
commit e11db78096
3 changed files with 6 additions and 8 deletions

View File

@ -13,7 +13,7 @@
(define s (rpc `(udp new 5555 65536)))
(let loop ()
(wait (message-handlers
[(udp-packet source (and sink (? (lambda (x) (eq? x s)))) body)
[(udp-packet source (and sink (== s)) body)
(display "UDP!\n")
(send (udp-packet sink source body))
(loop)])))))

View File

@ -36,14 +36,12 @@
(spawn (udp-closer sname s))
sname]))
(define ((for-me? sname) x) (eq? sname x))
(define ((udp-sender sname s))
(let loop ()
(wait (message-handlers
[`(close ,(? (for-me? sname)))
[`(close ,(== sname))
(void)]
[(udp-packet (? (for-me? sname)) (udp-address host port) body)
[(udp-packet (== sname) (udp-address host port) body)
(meta-send (lambda ()
(printf "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~n~v~n" body)
(dump-bytes! body (bytes-length body))
@ -55,7 +53,7 @@
(define buffer (make-bytes buffer-size))
(let loop ()
(wait (message-handlers
[`(close ,(? (for-me? sname)))
[`(close ,(== sname))
(void)])
(meta-message-handlers
[((udp-receive!-evt s buffer) => (list packet-length host port))
@ -68,5 +66,5 @@
(define ((udp-closer sname s))
(wait (message-handlers
[`(close ,(? (for-me? sname)))
[`(close ,(== sname))
(udp-close s)])))

View File

@ -50,7 +50,7 @@
(define reply-addr (gensym 'reply-addr)) ;;; !!! TODO: remove side-effect?
(send `(request ,reply-addr ,req))
(wait (message-handlers
[`(reply ,(? (lambda (v) (eq? v reply-addr))) ,v)
[`(reply ,(== reply-addr) ,v)
v])))
(define-syntax rpc-service