## ;. (Cut) Conjunction

Creates a new verb by combining verb u with a noun parameter: n. The resulting verb applies u to the separate parts of a list: y.

The parameter: n is an integer from the list: _2 _1 0 1 2. It determines how the parts of y are to be delimited as follows:

•  n The item used to delimit the part... 1 First item of y, which is kept _1 First item of y, which is lost 2 Last item of y, which is kept _2 Last item of y, which is lost 0 Don't use a delimiter, just reverse y

DEFINITION: The item of y which gets used as the delimiter is called the fret.

```   y=: 'AbracadAbra'
u=: <      NB. a common verb to use with (;.) --will box the parts of y
u ;. 1 y   NB. (n=:1) means: leading 'A' is the fret
+-------+----+
+-------+----+
u ;. 2 y   NB. (n=:2) means: final 'a' is the fret
+----+--+-----+
|Abra|ca|dAbra|
+----+--+-----+
u ;. _1 y   NB. (n=:_1) means discard each 'A'
+------+---+
+------+---+
u ;. _2 y   NB. (n=:_2) means discard each 'a'
+---+-+----+
|Abr|c|dAbr|
+---+-+----+
u ;. 0 y   NB. (n=:0) means no fret, just reverse y before applying: u
+-----------+
+-----------+```

### Common uses

1. To cut a string: y into a list of boxed substrings at some chosen delimiter, e.g. Space (' ')

Compare this with the action of Words (;:)

• Advantage: ;: doesn't need to prefix a Space to: y

• Disadvantage: ;: is sensitive to the contents of y -- it follows the J parsing rules, and chokes on embedded Quote (').

```   y=: 'alpha bravo charlie'
;: y
+-----+-----+-------+
|alpha|bravo|charlie|
+-----+-----+-------+
(<;._1) ' ',y
+-----+-----+-------+
|alpha|bravo|charlie|
+-----+-----+-------+

y=: 'Fine, easy as 1 2 3?'
;: y
+----+-+----+--+-----+-+
|Fine|,|easy|as|1 2 3|?|
+----+-+----+--+-----+-+
(<;._1) ' ',y
+-----+----+--+-+-+--+
|Fine,|easy|as|1|2|3?|
+-----+----+--+-+-+--+
y=: 'Fine, easy as 1 2 3, isn''t it?'
;: y
|open quote
|   Fine, easy as 1 2 3, isn't it?
|                           ^
|       ;:y
(<;._1) ' ',y
+-----+----+--+-+-+--+-----+---+
|Fine,|easy|as|1|2|3,|isn't|it?|
+-----+----+--+-+-+--+-----+---+```

2. The Foreign: 5!:5 (Linear Representation) employs Cut (;.) in its output to represent a list of boxed words.

This is a trick you can adopt in your own code, to simplify defining such a list

```   z=: 'alpha' ; 'bravo' ; 'charlie'
5!:5 <'z'
<;._1 ' alpha bravo charlie'
assert z -: (<;._1 ' alpha bravo charlie')```