[chuck-users] Time logic

AlgoMantra algomantra at gmail.com
Sat Nov 10 22:26:32 EST 2007


"The fact that this expression evaluates to
true after the waiting time is what confuses me, compared to traditional
programing language control structures."

I've been following this thread and now I'm also very curious
to know the answer here. It's one thing to call for a delay
in the main loop, but quite another to add a delay as condition.

- fadereu

On Nov 11, 2007 7:34 AM, Juan-Pablo Caceres <jcaceres at ccrma.stanford.edu>
wrote:

> Martin Ahnelöv wrote:
> > lör 2007-11-10 klockan 09:29 -0800 skrev Juan-Pablo Caceres:
> >> Hi there,
> >>
> >> I have another question concerning time logic.  The following 2
> examples
> >> are similar:
> >>
> >> // 1)
> >> while (true)
> >> {
> >>      <<<"HELLO">>>;
> >>      1::second => now;
> >> }
> >>
> >> // 2)
> >> while (1::second => now)
> >> {
> >>      <<<"HELLO">>>;
> >> }
> >>
> >>
> >> So the question is, is the second case using some syntactic sugar?
> >> Because conceptually it doesn't sound right to me. Maybe the chuck
> gurus
> >> out there can make more sense of it?
> >>
> >
> > Well, it's pretty easy, actually. While takes an expression, and if that
> > expression returns true, it evaluates the code inside the brackets, and
> > then it tests the expression again. This expression can be anything from
> > "true", to "i<100", or even a function (that can do absolutely
> > anything). in the second case it's "1::second=>now", which will return
> > true when 1 second have passed.
>
> Hi Gastern,
>
> I understand how 'while' works on programming languages. What confuses
> me in chuck is the meaning of the expression
> (dur => now)
>
> A 'while(expression)' cycle will stop executing the statement as soon as
> the expression evaluates to 'false'. In the case of evaluating (dur =>
> now), I think that there's also a timing logic involved, in the sense
> that if (1::second => now) evaluates to 'true' only when 1 second has
> passed, it should evaluate to false in every other time, which would
> cause the control to exit the block.
>
> What (I think) is going on is that (dur => now) as an expression is just
> waiting, advancing time, and as soon as time has advances 'dur', it
> evaluates to true by default. The fact that this expression evaluates to
> true after the waiting time is what confuses me, compared to traditional
> programing language control structures.
>
> Sorry for the lengthy and confusing email!
> JPa.
>
>
> _______________________________________________
> chuck-users mailing list
> chuck-users at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>



-- 
-------    -.-
1/f   )))  --.
-------    ...
http://www.algomantra.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20071111/dd91e84f/attachment.htm 


More information about the chuck-users mailing list