On Wednesday, 7 September 2016 at 20:49:42 UTC, data pulverizer
wrote:
You're quite right that D doesn't need to change at all to
implement something like pandas or dataframes in R, but I am
thinking of how to got further. Very often in data science
applications types will turn up that are required but are not
currently configured for your table. The choice you have is to
have to modify the code or as scala does give programmers the
ability to write their own interface to the type so that the it
can be stored in their DataFrame.
I think part of the difficulty is that you're thinking in terms
of everything being dynamic. If all your data is statically typed
in the first place, then I don't see what the issue is.
Consider a potential use case. You have an existing data frame
and you want to add a column of data to it that has a different
type than the existing frame. I imagine the function call would
look something like:
auto newFrame = oldFrame.addCol(newData);
So you just need to ensure that the data frame struct or class
has an addCol method that returns a new frame with the correct
type when you add a column.
I'm not familiar with Scala's data frames.
The best solution is that the data table is able to cope with
arbitrary number of types which can be done in Sparrow.
D has support for an arbitrary number of types (tuple, variant,
algebraic). It's just a matter of putting it together.
Anyway, given that Sparrow is still in its early stages, if you
actually want to get some work done, D might be a better fit.
On Wednesday, 7 September 2016 at 20:52:26 UTC, data pulverizer
wrote:
p.s. it goes beyond just tables, ... having dynamic capability
in a static compiled language really does take computing to a
different place indeed.
There are some dynamic capabilities in D, such as
variant/algebraic and Adam Ruppe's jsvar. I only wonder if you
would lose performance if wanted something fully dynamic. A
static approach is a good starting place.