[racket] Three questions related DrRacket

From: Justin Zamora (justin at zamora.com)
Date: Wed Jun 1 21:19:59 EDT 2011

On Wed, Jun 1, 2011 at 7:22 PM, Yingjian Ma <yingjian.ma1955 at 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



Posted on the users mailing list.