# Essays/The Art of Shaving

This essay is not yet completed, and has no structure. I'm still using this page to collect ideas. I'll post on the Forum when it's done.

## goal

{

This essay is not yet completed, and has no structure. I'm still using this page to collect ideas. I'll post on the Forum when it's done.

## goal

 our fortune is / your shaven face / it's our best / advertising space burma-shave

We seek a blade which cuts both ways: a monad which curtails each axis of its argument. EG, trim the last atom from a vector, the last row and column of a table, the last row, column, and page of a report, etc:

```   shave        3  NB.  If you don't know,
3
shave i.     3  NB.  whose signs these are,
0 1
shave i.   3 3  NB.  you can't have driven
0 1
3 4
shave i. 3 3 3  NB.  very far.
0  1
3  4

9 10
12 13
```

## motivation

 within this vale / of toil and sin / your head grows bald / but not your chin burma-shave

(Try to remember when and why I've wanted this. Perhaps ask Tucker his reason. Some discussion of the treatment of scalars, and whether they should be left alone, as in most solutions, or curtailed to produce an empty vector)

The next section discusses the approaches we can take to define our verb. Each approach is headed by a razor, or verb which represents that approach. Subsequently, blades are introduced; these are variations on the theme, or different formulations. Razors and blades are compared; a verb which takes fewer strokes to trim its argument is superior.

 in cupid's little / bag of trix / here's the one / that clix / with chix burma-shave
 SAID FARMER BROWN, WHO'S BALD ON TOP, "WISH I COULD ROTATE THE CROP." BURMA-SHAVE

When we we need to curtail in J, the first idea that comes to mind is the monad }: :

```   }: i. 3
0 1
```

However, }: by itself only curtails the primary axis; somehow, we need to rotate, or reorient, the argument, such that the trailing axes move, in turn, to the front, whence they'll be curtailed with }:.

J provides for moving axes with |:...

 A SHAVE THAT'S REAL, NO CUTS TO HEAL, A SOOTHING, VELVET AFTER-FEEL, BURMA-SHAVE

For errors or curves. A man A miss A car--a curve He kissed the miss And missed the curve Burma-Shave

We don't Know how To split an atom But as to whiskers Let us at 'em Burma-Shave

It's not How fast or slow You drive The question is How you arrive Burma-Shave Shave faster without disaster Burma-Shave

50% quicker 100% slicker

 Hello

J programmers familiar with the conjunction ;. know that it has a case,m ;.0 which provides for extracting (rectangular) sub-arrays.

<can do this by calculating indices and supressing them from the ravel, then reshaping the result to <:\$y>

A verb which meets the

 0 #@:\$ 0&(|:}:) ] Alistair Tucker? (reseach & link) 0a (0 |: }:)^:(#@\$) Derivative of 0. (check originality, discuss powering feature of bonded monads x m&u y) 1 (#@\$ \$ _1:) }. ] (reseach, link, some exposition on multi-dim }. 2 {~ <@:((<@i.)"0@:<:@:\$) Edushka (link) 2a {~ <@:((<@i.)@<:@:\$) Derivative of 2 2b {~ [: <@:(i.&.>) _1 + \$ Derivative of 2 3 {~ (<<_1) <@#~ #@\$ Spin on 2. (check originality, then link, explanation of index exclusion) ("spin on" vs. "(reformulation of)" 4 ];.0~ _1 + \$ (check originality, then link) a shave that's real / no cuts to heal / a soothing velvet/ after-feel / burma-shave
 5 ; @:(<;._3~ 0 ,: _1 + \$) (check originality, link, and describe why ];. is insufficient and <@:(<;. neccesary) ... ... Dig out all solutions posted to thread, along with any others you can find in the archives, documentation/phrases, library/addons, wiki, and svn, if you can search it (try google). Add performance metrics.

They give you the razor, to sell you the blades.