Re: a column major packing component

/ Innovimax SARL <innovimax@gmail.com> was heard to say:
| I proposed last week a p:pack component to get any number of sequence
| and put it in a column major way
| say each letter represent a document of a sequence
|                           .----------.
| -- A - B - C - D --  |           |
| -- E - F - G - H --  | PACK | -- <_>A E K</_> - <_>B F L</_> - <_>C G
| M</_> - <_>D H N</_>
| -- K - L - M - N --  |           |
|                           .----------.
|
| It seems that I forgot that we loose "en passant" the possibility to
| have "*" input ports
|
| So I propose this component with only two sequences as input
|
| <p:declare-step type="p:pack">
|     <p:input port="source" sequence="yes" primary="yes"/>
|     <p:input port="alternate" sequence="yes"/>
|     <p:output port="result" sequence="yes"/>
|     <p:option name="wrapper" required="yes"/>
| </p:declare-step>

Assuming that source comes from

  <p:pipe step="srcseq" port="result"/>

and alternate comes from

  <p:pipe step="altseq" port="result"/>

then p:pack is equivalent to the following for-each, yes?

  <p:for-each name="packer">
    <p:iteration-source>
      <p:pipe port="srcseq" port="result"/>
    </p:iteration-source>

    <p:option name="count" select="p:iteration-position()"/>

    <p:split-sequence name="getalt">
      <p:input port="source">
        <p:pipe step="altseq" port="result"/>
      </p:input>
      <p:option name="test" select="concat('position() = ',$count)"/>
    </p:split-sequence>

    <p:wrap wrapper="wrapper">
      <p:input port="source">
        <p:pipe step="packer" port="current"/>
        <p:pipe step="getalt" port="matched"/>
      </p:input>
    </p:wrap>
  </p:for-each>

I grant that it might be faster for a single atomic step to do this,
but I'm not sure it needs to be a standard step.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh <ndw@nwalsh.com> | Anything more than the truth would be
http://nwalsh.com/            | too much.--Robert Frost

Received on Wednesday, 8 August 2007 16:32:46 UTC