Hi Matthias, Thanks for answer. However, this is not what I wanted:
I want to persist that I can write the code below (where "define" can be changed to other name): (define (f #t) 2) (define (f #f) 3) (define (f _) 0) to do what I want to do. So how should I define my "define" in order to do it? Your answer is perfect but it is a different form from my original code above. Could you give me an answer? Thanks. M. On Mon, May 18, 2015 at 9:20 PM, Matthias Felleisen <matth...@ccs.neu.edu> wrote: > > #lang racket > > (define/match (f n) > [(#t) 2] > [(#f) 3] > [(_) 0]) > > (list (f #t) (f #f) (f "where's my homework")) > > > On May 18, 2015, at 9:04 AM, Mianlai Zhou <mianlai.resea...@gmail.com> > wrote: > > > Hi Racketeers, > > > > I am a new user of Racket. > > > > I would want to be able to write the following segment of code: > > > > (define (f #t) 2) > > (define (f #f) 3) > > (define (f _) 0) > > > > My intention is to define a function f, such that given an argument #t > it will produce 2, or in > > case given an argument #f it will produce 3. For any other value (shown > by underscore), it > > will give 0. This is done by pattern matching. > > > > Obviously, I cannot do this straightforward, because in current Racket > the definitions in the > > prior lines will be overshadowed by definitions given in the lines > after. Moreover, I cannot give > > the real values of argument, #t, #f and underscore, directly. If I do > want to write the code as > > shown above, probably I have to use reader macro. The question now is, > how to do it? How to > > implement a pattern-matching-style syntax by means of reader macro? > > > > Thank you all for helping me, a real new beginner in Racket language. > > > > M. > > > > -- > > You received this message because you are subscribed to the Google > Groups "Racket Users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to racket-users+unsubscr...@googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.