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.

Reply via email to