On Wed, Jun 1, 2011 at 7:22 PM, Yingjian Ma <yingjian.ma1...@gmail.com> wrote: > > In my question > (define (p x) > (+ x 10) > (* x 10) > ) > It seems it only executes (* x 10)
No, it executes both of them. It evaluates (+ x 10), then throws away the value it just computed. Then it evaluated (* x 10), since that is the last expression, the value gets returned as the value of the function. When there is more than one expression in a function body, all of them get evaluated, but only the last is returned. If you want to use the results of both expressions, then you need to use two functions, one for each expression, as Shriram said. Justin _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users