Ugh. Please excuse my previous reply. I completely forgot about a change to the contract system (that I helped with a little bit but that Stevie and Matthew did most of the work for).
If you change eqv? in your code to equal?, you should get #t back. You'll need the pre-release version, tho. This was no in 5.0.2. Sorry, Robby On Mon, Jan 24, 2011 at 3:15 PM, Eric Tanter <[email protected]> wrote: > Sorry, I don't get it. I'm not asking from a theoretical point of view, but > from a very practical, racket point of view, of two functions being eqv. > > Concretely: > ;; tmp.rkt > #lang racket > (define f (λ (x) x)) > (define ((pred f1) f2) (eqv? f1 f2)) > (define eq-f (pred f)) > (provide/contract [f (-> integer? integer?)]) > (provide eq-f) > > ;;tmp2.rkt > #lang racket > (require "tmp.rkt") > (eq-f f) > > -> is there a way to get that last call return #t? > > -- Éric > > On Jan 24, 2011, at 5:56 PM, Matthias Felleisen wrote: >> On Jan 24, 2011, at 2:41 PM, Eric Tanter wrote: >>> Hi all, >>> >>> From the DLS'10 paper of Stephen and Matthias, it says "the class system >>> must determine that two classes are equal modulo contract wrapping". >>> >>> I'm interested in that exact property but for functions. Ie. how do we >>> determine if two functions are "equal" modulo contract wrapping? >> >> eta-expansion? proxy-lambda? >> >> >>> >>> Thanks! >>> >>> -- Éric >>> _________________________________________________ >>> For list-related administrative tasks: >>> http://lists.racket-lang.org/listinfo/users >> >> > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

