The monadic operator `⍨`

is defined and modeled as follows:

```
f⍨ ⍵ ←→ ⍵ f ⍵
⍺ f⍨ ⍵ ←→ ⍵ f ⍺
{⍺←⍵ ⋄ ⍵ ⍺⍺ ⍺}
```

**Reflex**

Some common well-known functions can be written as `f⍨`

where `f`

is itself a well-known function:

` +⍨ `

double

` ×⍨ `

square

` ?⍨ `

random permutation

` ⍳⍨ `

self-index, APL Amuse-Bouche 3

See http://www.jsoftware.com/jwiki/Essays/Reflexive for further examples.

Awareness of the importance of the reflexive case might have led us to avoid the mistake in the definition of the dyadic case of `⍋`

. That is, if

```
⍺⍋⍵ ←→ ⍺⌷⍨⊂⍋⍵
```

then `⍋⍨⍵`

would be *sort*. Ken Iverson seemed to have had this awareness because that’s how he defined the dyadic case of `⍋`

in J. (I say “seemed” because he expressed surprise when first shown this use of `⍋⍨`

.)

The monadic case `f⍨`

came relatively late. It was not in *Operators and Functions* (1978) nor *Rationalized APL* (1983), and only introduced in *A Dictionary of APL* (1987). It came to Ken Iverson when he explicitly looked to natural languages for inspiration, whence it became “obvious”: `f⍨⍵ ←→ ⍵ f ⍵`

is the reflexive voice (je m’appelle Roger) and `⍺ f⍨ ⍵ ←→ ⍵ f ⍺`

is the passive voice (the programming competition was won by a 17-year-old student *vs*. a 17-year-old student won the programming competition), both having evolved in natural languages for effective communication and elegant expression.

**Commute**

The alternative definition of `⍺⍋⍵`

above, while illustrating the importance of the reflexive case (`f⍨ ⍵`

), also illustrates the passive case (`⍺ f⍨ ⍵`

). `⍺⌷⍨⊂⍋⍵`

can be read and understood as “`⍺`

indexed by the enclosed grade of `⍵`

“, a different (and in my mind a better) emphasis than `(⊂⍋⍵)⌷⍺`

, “the enclosed grade of `⍵`

, indexed into `⍺`

“.

I note that Arianna Locatelli, winner of the 2015 APL Problem Solving Competition but an APL beginner, used `⍨`

twenty-one times in her presentation at Dyalog ’15. For example,`⍨`

was used in the computation of the standard deviation (slide 13):

```
sol5←{a←,⍵ ⋄ ⊃0.5*⍨(⍴a)÷⍨+/2*⍨a-(⍴a)÷⍨+/a}
```

I believe this formulation comes naturally because `⍨`

can be used to write functions in the order that they are applied. Another way to put it is that `⍨`

reduces the need for long-scope parentheses. For example:

```
(2×a) ÷⍨ (-b) (+,-) 0.5 *⍨ (b*2)-4×a×c
((-b) (+,-) ((b*2)-4×a×c)*0.5) ÷ 2×a
```

That `⍨`

is easy to implement, `{⍺←⍵ ⋄ ⍵ ⍺⍺ ⍺}`

, is neither here nor there; its value as a tool of thought is easily demonstrated.