[racket] Three questions related DrRacket
One of the nice things about Racket is that it works a lot like
algebra. You combine Racket expressions the same way you combine
mathematical expressions. In math, you would write a single
expression that's built out of smaller expressions, such as 10 * (x +
1). In Racket, you would write this as: (* 10 (+ x 1)). Just as in
algebra, the innermost expressions are evaluated first, and the the
results are used by the outer expressions to compute a final result.
You will get farther in Racket by thinking in terms of evaluating
expressions and reducing them to a result than by thinking in terms of
executing a sequence of steps.
You may be interested in looking at some video lectures I made. The
class got cancelled, so there are only a few lectures, but they deal
with the basics of Racket expressions. They are at
http://www.youtube.com/playlist?p=PL3F392F068BECB707
Justin
On Wed, Jun 1, 2011 at 11:09 PM, Yingjian Ma <yingjian.ma1955 at gmail.com> wrote:
> Thank you both for your reply.
>
> My real need is to use the result of the first function in the second
> function. Is there a standard way to pass a variable into the next
> function?
>
> On Wed, Jun 1, 2011 at 6:24 PM, Shriram Krishnamurthi <sk at cs.brown.edu>
> wrote:
>>
>> Also note that if you programmed in the Student Language levels, this
>> function would be illegal (and it might give you some insight into how
>> this programming style works).
>>
>> On Wed, Jun 1, 2011 at 9:19 PM, Justin Zamora <justin at zamora.com> wrote:
>> > 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
>> >
>> > _________________________________________________
>> > For list-related administrative tasks:
>> > http://lists.racket-lang.org/listinfo/users
>> >
>
>
> _________________________________________________
> For list-related administrative tasks:
> http://lists.racket-lang.org/listinfo/users
>