The last two weeks, a deep rewriting was taken out. To make it short :
- The freedoms, the declaration of the unknowns, are only possible in sets definition. Before, they were available everywhere : this possibility didn't bring any feature and made the code deeply unmaintainable. (dunno why I didn't realise earlier)
- The knowledge is not represented anymore as a table containing a value for each local. The knowledge is now just a list of "premices". A premice is just an expression while it has the flag "failable".
Beside a more esthetic internal logic, this allow things like " f(1, x) + 1; f(1, x) = 1 " to be solved as " 2 ", while functions always return the same value for the same arguments.
- The solving engine is involved in each step of the evaluation. Now, there is no need anymore to make special operation (like extraction) on sets for them to be solved (ie. the greedy-ORs are pushed toward the set's root, not to remain in a sub-expression)
I could finally today begin the extraction system - I'm glad I can finally begin to write the generation of SQL-like requests from a 'take' operation.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment