# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

# `extnops`

Number of operands of the internal representation a domain element

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.

## Syntax

```extnops(`object`)
```

## Description

`extnops(object)` returns the number of operands of the object's internal representation.

For objects of a basic data type such as expressions, sets, lists, tables, arrays, hfarrays etc., `extnops` yields the same result as the function `nops`. The only difference to the function `nops` is that `extnops` cannot be overloaded by domains implemented in the MuPAD® language.

Internally, a domain element may consist of an arbitrary number of data objects; `extnops` returns the actual number of internal operands. Since every domain should provide interface methods, `extnops` should only be used from inside these methods. “From the outside”, the function `nops` should be used.

## Examples

### Example 1

`extnops` returns the number of entries of a domain element:

`d := newDomain("demo"): e := new(d, 1, 2, 3, 4): extnops(e)`

`delete d, e:`

### Example 2

For kernel domains, `extnops` is equivalent to `nops`:

`extnops([1, 2, 3, 4]), nops([1, 2, 3, 4])`

### Example 3

We define a domain of lists. Its internal representation is a single object (a list of kernel type `DOM_LIST`):

```myList := newDomain("lists"): myList::new := proc(l : DOM_LIST) begin new(myList, l) end_proc:```

We want the functionality of `nops` for this domain to be the same as for the kernel type `DOM_LIST`. To achieve this, we overload the function `nops`. The internal list is accessed via `extop(l, 1)`:

`myList::nops := l -> nops(extop(l, 1)):`

We create an element of this domain:

`mylist := myList([1, 2, 3])`

Since `nops` was overloaded, `extnops` provides the only way of determining the number of operands of the internal representation of `mylist`. In contrast to `nops`, `extnops` always returns 1, because the internal representation consists of exactly one list:

`nops(mylist), extnops(mylist)`

`delete myList, mylist:`

## Parameters

 `object` An arbitrary MuPAD object

## Return Values

Nonnegative integer.