DelayedOp-class {DelayedArray} | R Documentation

## DelayedOp objects

### Description

NOTE: This man page is about DelayedArray internals and is provided for developers and advanced users only.

In a DelayedArray object, the delayed operations are stored as a tree where the leaves are operands and the nodes are the operations. Each node in the tree is a DelayedOp derivative representing a particular delayed operation.

DelayedOp is a virtual class with 8 concrete subclasses. Each subclass provides a formal representation for a particular kind of delayed operation.

### Usage

    is_noop(x)

### Arguments

`x` | A DelayedSubset, DelayedAperm, or DelayedSetDimnames object.

### Details

8 types of nodes are currently supported. Each type is a DelayedOp subclass:

      Node type                        Represented operation
      ------------------------------------------------------------------
      DelayedOp (VIRTUAL)
      ------------------------------------------------------------------
      * DelayedUnaryOp (VIRTUAL)
        o DelayedSubset                Multi-dimensional single bracket
                                       subsetting.
        o DelayedAperm                 Extended aperm() (can drop and/or
                                       add ineffective dimensions).
        o DelayedUnaryIsoOp (VIRTUAL)  Unary op that preserves the
                                       geometry.
          - DelayedUnaryIsoOpStack     Simple ops stacked together.
          - DelayedUnaryIsoOpWithArgs  One op with vector-like arguments
                                       along the dimensions of the input.
          - DelayedSubassign           Multi-dimensional single bracket
                                       subassignment.
          - DelayedSetDimnames         Set/replace the dimnames.
      ------------------------------------------------------------------
      * DelayedNaryOp (VIRTUAL)
        o DelayedNaryIsoOp             N-ary op that preserves the
                                       geometry.
        o DelayedAbind                 abind()
      ------------------------------------------------------------------

All the nodes are array-like objects that must comply with the seed contract i.e. they must support `dim()`, `dimnames()`, and `extract_array()`. See `?extract_array` for more information about the seed contract.

`is_noop()` can only be called on a DelayedSubset, DelayedAperm, or DelayedSetDimnames object at the moment, and will return `TRUE` if the object represents a no-op.

### Note

The DelayedOp virtual class and its 8 concrete subclasses are used inside a DelayedArray object to represent delayed operations carried by the object. They're never exposed to the end user and are not intended to be manipulated directly.

### See Also

- DelayedOp concrete subclasses: DelayedSubset, DelayedAperm, DelayedUnaryIsoOpStack, DelayedUnaryIsoOpWithArgs, DelayedSubassign, DelayedSetDimnames, DelayedNaryIsoOp, and DelayedAbind.

- DelayedArray objects.

- `showtree` to visualize the nodes and access the leaves in the tree of delayed operations carried by a DelayedArray object.

- `simplify` to simplify the tree of delayed operations carried by a DelayedArray object.

- `extract_array`.

[Package DelayedArray version 0.20.0 Index]