A (small) collection of phrases. My thanks to each author.

```findInTable =: \$:&Table : ( i.&1@:(e."1)"0 _ )   NB. DB
NB. Returns the row in Table within which y occurs.```

```(,:'celledit';1) grid !/~i.8   NB. CB
NB. This sets a grid to come up with editable cells.```

```(\$anArray)#:I.,anArray = y    NB. PG
NB. coordinates where y is located within anArray```

```(4!:4 <'nametofind') {:: (4!:3 ''),<'not from a script'   NB. RH
NB. identifies where a name was defined```

```seq=. ((&.>) /) (@:((|.@:[) , (<@:]))) (>@:)   NB. JQ
NB. A conjuction for sequential application of dyadic verbs
NB. Example:

f=. ('('"_),[,(' f '"_),],(')'"_) NB. dyadic verb
'X' f 'Y'
(X f Y)
('X1';'X2';' ... ';'XN') f seq 'Y0'
(XN f ( ...  f (X2 f (X1 f Y0))))

seqb  =: each / ( @:(<"_1@:[ , <@:]) )  (>@:)  NB. DB
NB. seqb is less general than seq but leverages a characteristic of the Sieve of Eratosthenes.
NB. See http://www.jsoftware.com/pipermail/programming/2007-May/006725.html and its thread.```

```NB. basic J concepts
countItems=: ((0 = #) >. ([: {. ]))@ \$     NB. TH```
• I'm sure you already know this, but countItems is just #. Check out PrimitivePrimitives for other interesting ways to reimplement primitives.

• In fact, thanks to your countItems, I just fixed a longstanding bug on that page. The entry for monad # had read {.@\$, but as you correctly observe with (0=#)>., that was incorrect for scalars. The replacement now reads {.!.1@\$. Appreciate the pointer!

Oh, on that note, you can write {.@ ... instead of ([: {. ])@ ... .

-- DanBron 2008-01-09 18:16:45