[plt-scheme] match for Promise

From: David Herman (dherman at ccs.neu.edu)
Date: Sun Feb 28 17:08:18 EST 2010

A quick implementation:

;; --
#lang scheme/base

(require scheme/match
         scheme/promise
         web-server/dispatch/extend)

(define-coercion-match-expander promise promise? force)
;; --

Example:

> (define foo
    (delay (begin (printf "forced!\n") 42)))
> foo
#<promise:foo>
> (match foo
    [(promise x) x])
forced!
42

[It seems to me define-coercion-match-expander is useful enough to belong in scheme/match.]

Dave

On Feb 27, 2010, at 1:02 AM, krhari at ccs.neu.edu wrote:

> Hi,
> In Typed Scheme, I have a structure which has a field of type 
> 
> (Promise (Pair A B)).
> 
> Is it possible to use match for this(for Promise)? 
> 
> Thanks
> Hari
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme



Posted on the users mailing list.