Zeljko Vrba wrote:
On Sun, Jul 20, 2008 at 07:39:02PM +0800, Joel de Guzman wrote:
Can't see the connection yet? Don't limit yourself to just thinking in terms of tuples. Think in terms of data-structures, sequences, containers, views.
OK, let's take an example of a CSV parser. Let's say I read the whole CSV file into an std::vector<F>, where F is some fusion container. So far, so good. Now I want a view (abstraction) V that will let me treat i'th column of the dataset as if it were a vector, e.g. V[17] would return me the i'th column of 17th row, and even allow me to modify it. And then this abstraction could be passed around, iterated over, used in STL algorithms, etc. It has the same properties as vector (random access container), except that it's storage is not contiguous.
Does this look like something that fusion could help with? (Though, for the record, I would personally not do casual data processing and CSV parsing in C++; the time spent learning fusion and coding processing functions seems much more productively spent in learning something like R.)
In that case, it's pointless to answer, or even try to comprehend your question before this paragraph. So, I won't bother. For the record, I would personally spend my time on something more productive.
And no, I don't see the connection. For me, the emperor is naked (see below about maintainability). Maybe I'm stupid, maybe I'm just not easily susceptible to latest.. erm. "technologies", until they have proven their value (again, see below on maintainability to get an idea of my value metrics). Pick what you like.
Wrong analogy. ML has homogeneous lists, like STL. A list (in ML) is essentially a sequence of items but they must be all of the same type.
Except that the "same type" can actually be a variant.
Sure. Like std::vector
just "do not seem" useful at compile-time.. at least not when I'm thinking ML where Are you saying that MPL is not useful too? Out of curiosity, have you used MPL?
Stop reinterpreting my words to your convenience. I ignored one such previous case along those lines, but no more. I'm saying exactly what I wrote and what is quoted above: it does not seem useful. This is not the same as saying that it is not useful (which, for the record, although it should be obvious, I did NOT say).
Ok, pardon me. That's what I really wanted to ask, but I missed a word. Yeah, it's not the same thing.
No, I have not used MPL. Yes, I've read the introduction and motivation (the example with dimensional algebra), and it seems like a rather niche application. Heck, I've even tried to read the MPL book and the question mark in my head just got bigger, not smaller. It is a reference book about manipulating typelists, but it does not say what typelists are good for. I haven't been able to find a use for MPL myself. From my POV, it's a black magic used by library writers to provide "nice" library interfaces, and which spits out hundreds (or megabytes if the user is unlucky) of error messages if the user does something wrong.
Seems Dave gave a better answer than the one I was about to type. Well, if MPL and the TMP book does not connect with you, no amount of Fusion documentation will ever convince you of its merits. On one hand, I want to answer your questions and queries, improve the docs, write examples, etc. On the other hand, I'm starting to feel that no amount of effort will ever make you change your mind, since, it seems, it's already been made. If that's the case, and correct me if I'm wrong, I'd rather spend my time on something more productive. At the very least, however, I *do* agree with you that the docs need improvement in the area you just took mention of: motivation. I do intend to work on it. Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net