Kai Oliver Kaminski [EMAIL PROTECTED] wrote: > What kind of dependency tracking would you need? Just within a single > page? For multiple pages? Send me use cases, tell me what you need.
I've been thinking about this a lot lately. Mathematica seems to keep an array of input and output. (In[] and Out[]). If we treat these as simple variables, dependency tracking would be as simple as keeping a linked list among variables. (e.g. a "has" or "indeterminants" function) In addition to that each variable would need a "modified" flag. Any time a "modified" flag is toggled, axiom could traverse the dependency tree and mark outputs with a "recompute" flag. For example: (1) -> integrate(x+y^2*z, x) 2 1 2 (1) x y z + - x 2 Type: Polynomial Fraction Integer Here (pseudo-code): in[1] = { value: "integrate(x+y^2*z,x)" indets: "y,z" modified: false recompute: false } out[1] = { value: "x*y^2*z+1/2*x^2" indets: in[1] modified: false recompute: false } (2) -> y:=3 (2) 3 Type: PositiveInteger Upon executing this, the code would search the dependency tree for anything with "y" in "indets". The "recompute" flag for in[1] would be toggled, followed by the same flag for out[1]. Traversing the tree, axiom should know to recompute in[1] (which puts its result in out[1] and changes its recompute flag). A user interface could choose to highlight out[1] as needs-recomputing, or just go ahead and do it. (spreadsheet-style) -- Cheers, Bob McElrath [Univ. of California at Davis, Department of Physics] "One of the best ways to get yourself a reputation as a dangerous citizen these days is to go about repeating the very phrases which our founding fathers used in the great struggle for independence." --Charles A. Beard
signature.asc
Description: Digital signature
_______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer