def slice( start, length )
      source, table = @source, @table
      if source.dimension > 1
        source = source.slice( start, length ).roll
        self.class.new( source, table, @n ).unroll
      elsif table.dimension > @n
        self.class.new( source,
                        table.unroll( @n ).slice( start, length ).roll( @n + 1 ),
                        @n ).unroll
      else
        super i
      end
    end
def slice( start, length )
      source, table = @source, @table
      if source.dimension > 1
        source = source.slice( start, length ).roll
        self.class.new( source, table, @n ).unroll
      elsif table.dimension > @n
        self.class.new( source,
                        table.unroll( @n ).slice( start, length ).roll( @n + 1 ),
                        @n ).unroll
      else
        super i
      end
    end
Extract array view with part of array

 @param [Integer,Node] start Number of elements to skip.
 @param [Integer,Node] length Size of array view.

 @return [Node] Array view with the specified elements.

 @private