In their simplest form, EveXL expressions state the existence of one, or more, intervals of time. The following snippet shows how to declare one such interval. It should be read as JustTime is a time interval.
Now, intriguing as it may be to name abstract concepts like intervals of time, that's not really useful. Therefore, EveXL allows us to state conditions that must hold in the course of intervals. Assuming we have a sensor called "color" that records the color of the items that fall in the sink, the following expression states that SomeInterval is an interval of time during which the sensor "color" reads the value red.
It will be satisfied as soon as a red item drops (to run the demo, toggle the “Start Demo” button or just press one of the colored buttons to drop a ball of the corresponding color).
We can define as many intervals as necessary. E.g., the following expression states that there are three intervals, I1, I2 and I3, each corresponding to periods of time during which the "color" sensor respectively reads the values of "red", "green" and "blue". It will be satisfied whenever an item of each color drops, regardless of the order.
We can use logic to more thoroughly specify what happens inside each interval. The following expression will succeed when the "color" sensor reads a value of "purple" or "blue".