# Vocabulary/ampco

 [x] u&:v y Appose Conjunction

Rank Infinity -- operates on [x and] y as a whole -- WHY IS THIS IMPORTANT?

Applies verb v to each argument in its entirety, and then applies verb u to the result(s) of v

```   u =: <                 NB. x is smaller than y
v =: |                 NB. magnitude
csm =: +/ @:  u &: v   NB. Count how many x's are smaller than y in magnitude
_1 2 0 csm 2 _3 0
2
```
• Verb v is executed monadically.

See: More Information for a visual comparison of At (@:), Atop (@), Compose (&) and Appose (&:).

### Common Uses

1. The monadic use of &: is deprecated. Use @: instead. Some compounds of the form f&:g are not recognized for special code in places where f@:g is recognized, if only the monadic form of the compounds is eligible for special treatment.
2. u&:v is called for when the rank of v is less than the ranks of an argument, but you want to apply u to the entire result of v.

In the csm example above, we needed (&:) not (&)

```   _1 2 0  +/@:<&:|  2 _3 0   NB. "csm" example as an anonymous verb in a 1-liner
2
_1 2 0  +/@:<&|   2 _3 0   NB. different result using (&) in place of (&:)
1 1 0
```

Because  | y has rank 0, the entire compound  +/@:<&| is applied to each atom of x and y, making the +/ useless since it now operates on each atom individually.

### Related Primitives

Atop (@), At (@:), Compose (&), Hook ((u v)), Fork ((f g h))

1. Contrast Appose (u&:v) with Compose (u&v) which applies v to individual cell(s) and then applies u on the individual result(s) of v

2. The difference between Appose (u&:v) and Compose (u&v) is shown in the last two columns of the diagram below:

The above diagram also shows At (@:) and Atop (@) for overall comparison.

3. So what's the difference between Atop (@) and Compose (&) ?

None at all, for the monads (u@v) and (u&v)

```  u&v y ↔ u v y
u@v y ↔ u v y
```
```But the dyads are different
```
```  x u&v y ↔ (v x) u (v y)
x u@v y ↔ u x v y
```

According to the J Dictionary -- &: is equivalent to & except that the ranks of the resulting function are infinite; the relation is similar to that between @: and @