- From: Innovimax SARL <innovimax@gmail.com>
- Date: Sat, 3 May 2008 11:42:05 +0200
- To: "Alessandro Vernet" <avernet@orbeon.com>
- Cc: public-xml-processing-model-wg <public-xml-processing-model-wg@w3.org>
- Message-ID: <546c6c1c0805030242j7ac4d489w4535b1b2d1f9cdf5@mail.gmail.com>
Resend this one, since it hasn't been really considered On Fri, Aug 10, 2007 at 8:54 AM, Innovimax SARL <innovimax@gmail.com> wrote: > Alessandro, > > First, thanks for the link > > Going into detail of such a big list, we only lack few operations > today (see below for the detailed discussion) > > Here they are > > * the step p:is-empty to check whether a sequence is empty. > I also propose as an alternative the possibility to add a <p:option > name="limit" value="-1"> to p:count such that the value computed by > p:count is unbounded (-1) or limited to the value of limit (I must > admit I prefer the latter) > ---> Use case : many time we would only need to check whether a > sequence is 0, 1 or 2+ (so we would need to buffer only 2 documents to > have this information) > > * add a <p:option name="stop-test-after-first-false" value="no"/> > which would if positioned to true behave like span/break > (takeWhile/dropWhile) // TODO : choose a better name > ---> Use case : this one would be useful for processing interspersed > list (A,A, A, B, A, A, A, C, A, A, A, D) etc. > > * and p:pack which I already proposed > ---> Use case : compare sequence of documents > > > The other functions could be done with existing steps (essentially > p:viewport and p:split-sequence) and trough the use of recursion > > Some are out of reach because of we do not have port="*" anymore. I > especially think of p:transpose which would need p:input port="*" AND > p:output port="*" > > Mohamed > > > === Details === > > If we look carefully at this one > > We today have > * All the basic function (trough the use of p:split-sequence) except the > isEmpty > * for the List transformation > o map is done trough p:viewport > o we effectively don't have reverse (but this couldn't be done > efficiently anyway) > o intersperse can be done efficiently with p:viewport > o and transpose would effectively replace the need for p:pack, but > p:transpose would be a p:input ="*"/p:output="*", which we do not have > anymore > > * regarding folds, recursion is the solution (and the only one) > > * for special folds > o concat is done naturally by allowing multiple pipes in a p:input > element > o the other functions are numeric (and we don't need them since our > sequence contains document > > [skipping some numerical operations and infinite things..] > > * for sublists > o take/drop/splitAt can be done very efficiently with p:split-sequence > o takeWhile/dropWhile/span/break could be done with an extra option > on p:split-sequence > > * group can be done with p:wrap > > For the rest, we haven't provide so far functions for removing > duplicates/sorting and so on. I think that this choice make sense, > since such operations are really costly and could be done with > recursion > > > > > > > > On 8/10/07, Alessandro Vernet <avernet@orbeon.com> wrote: > > > > On 8/9/07, Norman Walsh <ndw@nwalsh.com> wrote: > > > Mohamed asked to have p:pack on the agenda, but we didn't get to it. > > > I'd like to close as many issues as possible in email. > > > > > > Please indicate if you are in favor of adding this step or not. > > > > a) I haven't encountered the need for such a component in the > > pipelines I have written so far. > > > > b) There are number of basic operations on sequenced which we could > > implement with a component. See [1] for what Haskell has to offer. Our > > "pack" is similar to Haskell's "zip" (except zip drops items from the > > longest list). But there are a number of other components we could > > provide as well, and adding just pack at this point seems somewhat > > arbitrary to me. > > > > So I don't have a strong objection to adding "pack", but would rather > > leave it out for now, and add this to our virtual list of things to > > keep in mind for V.2. > > > > [1] > http://haskell.org/ghc/docs/latest/html/libraries/base/Data-List.html > > > > Alex > > -- > > Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise > > http://www.orbeon.com/ > > > > > > > -- > Innovimax SARL > Consulting, Training & XML Development > 9, impasse des Orteaux > 75020 Paris > Tel : +33 9 52 475787 > Fax : +33 1 4356 1746 > http://www.innovimax.fr > RCS Paris 488.018.631 > SARL au capital de 10.000 € > -- Innovimax SARL Consulting, Training & XML Development 9, impasse des Orteaux 75020 Paris Tel : +33 9 52 475787 Fax : +33 1 4356 1746 http://www.innovimax.fr RCS Paris 488.018.631 SARL au capital de 10.000 €
Received on Saturday, 3 May 2008 09:42:39 UTC