Method 'Learner.tell' is ambiguous
Presently Learner.tell
decides whether it has been passed a single point, or a sequence of points by checking whether both the "x" (domain) and "y" (codomain) values are iterable. If they are, then they are treated as being a sequence of points, otherwise they are treated as a single point.
This works for all the current learners because, by pure accident, we have not yet implemented learners for functions ℝ^N → ℝ^M
. This recently had confusing consequences (see #58 (closed)).
We have 2 choices:
-
Have 2 methods (e.g.
tell
andtell_many
) that treat the single point case and several point case respectively. This would be a pure rename of the previous (and badly named) methodsadd_point
andadd_data
. -
Use better logic for determining when a sequence of points is being passed, as opposed to a single point.