Skip to content

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 and tell_many) that treat the single point case and several point case respectively. This would be a pure rename of the previous (and badly named) methods add_point and add_data.

  • Use better logic for determining when a sequence of points is being passed, as opposed to a single point.