2015-05-21 21 views

risposta

4

Sì, il J-modo è quello di utilizzare un incontro di boxe a 3 livelli:

(<<<5) { i.10 
0 1 2 3 4 6 7 8 9 

(<<<1 3) { i.10 
0 2 4 5 6 7 8 9 

Si tratta di una piccola nota nella dictionary for {:

Nota che il risultato nell'ultima esempio diadica , ovvero (< < < _1) {m, è tutto tranne l'ultimo elemento.

e un po 'di più in Learning J: Chapter 6 - Indexing: 6.2.5 Excluding Things.

+0

È una sintassi molto insolita ma decisamente più semplice della mia. –

+1

Il tuo modo è significativamente più efficiente per la rimozione di un articolo. Probabilmente è il più efficiente (almeno tra l'uso di '{', '; .' o'/.'). – Eelvex

3

Un altro approccio consiste nell'utilizzare le forme monadiche e diadiche di # (Tally e Copia). Questo idioma dell'utilizzo di Copia per rimuovere un elemento è qualcosa che uso frequentemente.

Il gancio (i. [email protected]#) utilizza Tally (monadica #) e monadici e diadici i. (interi e indice di) per generare la stringa di filtro:

2 (i. [email protected]#) 'abcde' 
1 1 0 1 1 

che Copy (diadica #) utilizza per omettere la voce appropriata.

2 ((i. [email protected]#) # ]) 0 1 2 3 4 5 
0 1 3 4 5 
    2 ((i. [email protected]#) # ]) 'abcde' 
abde