On 19/08/2011 05:53, Wolfgang Laun wrote:
On 18 August 2011 19:27, Mark Proctor <mproctor(a)codehaus.org
<mailto:mproctor@codehaus.org>> wrote:
On 18/08/2011 18:17, Wolfgang Laun wrote:
> On 18 August 2011 18:38, Mark Proctor <mproctor(a)codehaus.org
> <mailto:mproctor@codehaus.org>> wrote:
>
> We are looking to tighten up accumulate, using a new keyword to
> differentiate. It will use ; for separation, to follow a
> similar form to
> a 'for' loop.
>
> acc( CE*;
> <func>*;
> <guard>? )
>
> so something like:
>
> acc( $o : Order();
> $min : min( $o.value ),
> $max : max($o.value);
> $min > 100 && $max < 100 )
>
>
> Given that I can do this today using an eval after the accumulate
> CE: What's the big gain, as compared to the nuisance of yet
> another CE, with the need to document (which, traditionally,
> isn't done so eagerly) and teach and learn and getting it free of
> bugs?
I find the above looks cleaner and easier to read, the more we can
reduce the need for 'eval' the better. It is a common enough use
case that I feel it is worth support.
Well, a condition that's never true isn't a good use case. Even after
repairing it, the example does not tell you /where /the min and max,
respectively, are. Apart from determining the exact value of mininimum
and maximum (which could easily be added, together with locating the
containing Order!)
not Order( value <= 100 )
not Order( value >= 200 )
is more descriptive that the rather procedural "for" hidden in the
proposed "acc".
I wasn't showing it as a use case, I was showing it
as illustrative of
the syntax. I could have just done
acc( $o : MyClass();
$f1 : fun1( $o ),
$f2 : fun2( $o );
somBooleanFunc( $f1, $f2 ) )
Mark
Perhaps there are better use case; this one does not convince me.
-W
Acc is used a lot for CEP use cases and we need a syntax that can
compete succinctly with alternative approaches - if we look like a
dog dinner, we'll lose out to alternative CEP syntaxes. The
separation of the segments using ";" gives a clearer distinction
too, and it's 'for' loop like nature should more natural to people
new to the engine.
Mark
>
> -W
>
>
> I have wondered if we could use pipes on our functions, to be
> able to
> pass the results of one function into another - just not sure
> how that
> will work or look yet.
> func(...) in func(...)
> func(...) | func(...)
>
> Mark
>
> _______________________________________________
> rules-dev mailing list
> rules-dev(a)lists.jboss.org <mailto:rules-dev@lists.jboss.org>
>
https://lists.jboss.org/mailman/listinfo/rules-dev
>
>
>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev(a)lists.jboss.org <mailto:rules-dev@lists.jboss.org>
>
https://lists.jboss.org/mailman/listinfo/rules-dev
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org <mailto:rules-dev@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-dev
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev