2015-05-21 27 views

Odpowiedz

4

Tak, J-sposobem jest użycie boks 3-Level:

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

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

To mała uwaga w dictionary for {:

Zauważ, że wynik w ostatniej diadycznej przykład , to jest (< < < _1) {m, wszystkie są wyjątkiem ostatniego elementu.

i nieco więcej w Learning J: Chapter 6 - Indexing: 6.2.5 Excluding Things.

+0

To bardzo nietypowa składnia, ale zdecydowanie prostsza niż moja. –

+1

Twoja droga jest znacznie skuteczniejsza w usuwaniu jednego przedmiotu. Prawdopodobnie jest to najbardziej efektywne (przynajmniej pomiędzy użyciem '{', '; .' lub'/.'). – Eelvex

3

Innym podejściem jest użycie monadycznych i dwójkowych form # (Tally i Copy). Ten idiom użycia Kopiuj do usunięcia przedmiotu jest czymś, z czego często korzystam.

Hak (i. [email protected]#) wykorzystuje Tally (monadycznego #) i monadycznego i dwójkowym i. (liczby całkowite i indeks), aby wygenerować ciąg filtr:

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

który Copy (dwójkowym #) używa pominąć odpowiednią pozycję.

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