Rabobank-Archive / rule-engine

A rule engine supporting forward chaining
MIT License
47 stars 5 forks source link

New list loop syntax with Scalameta macro #73

Closed jhkuperus closed 8 years ago

jhkuperus commented 8 years ago

This PR contains a new syntax to handle looping over a list and performing a set of calculations for each element. This new version requires operations to be collected in what is known as a FlowBerekening, which specifies an explicit input and output Fact.

By moving this specification from the loop-statement to the implementation of FlowBerekening, we are making it more explicit that the set of derivations inside this FlowBerekening are to be used within a loop construct. At the same time, we cleanup the syntax for the loop statement, which was feeling a bit like a for-yield construct with different words.

Note to assignees: I'm leaving this PR open for you to review the changes and I'm going ahead with building a release from this branch right away. This way I can start the refactoring sooner. :)

Suggestions for a better name for FlowBerekening are welcome, as I'm not entirely happy with it, but currently at a loss for a better name.