# Question:How to index a procedure F[i,j,k](x,y,z)?

## Question:How to index a procedure F[i,j,k](x,y,z)?

Maple 2017

Using a Maple procedure is a very common task. For instance, here, F is a differential operator applied to any expression f

```restart;
F := proc (f) options operator, arrow; x*(diff(f, y))-y*(diff(f, x)) end proc;
/ d   \     / d   \
F := f -> x |--- f| - y |--- f|
\ dy  /     \ dx  /
F(sin(x*y));
2             2
x  cos(x y) - y  cos(x y)
```

It is also possible to index a procedure. There is an appropriate syntax. At the end, one should not forget to assign the procedure to a table. Here, F simply returns its indices.

```restart;
`index/F` := proc (idx) return idx end proc;
F := table(F);
F := TABLE(F, [])
F[i, j, k, 1, 2, 3];
[i, j, k, 1, 2, 3]
```

My question is how to define a procedure that uses both indexed and non-indexed arguments? That is, a procedure that returns a result according inputs of the type:

`F[i, j, k,...](x, y, z,...)`

I need such a syntax to define a differential operator (like the first example) that is further defined as a tensor within the Physics package (Physics:-Define). This differential operator thus needs to be indexed.

﻿