2015-05-21 17 views

Trả lời

4

Vâng, J-cách là sử dụng một đấm bốc 3 cấp:

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

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

Đó là một lưu ý nhỏ trong dictionary for {:

Lưu ý rằng kết quả trong ví dụ cặp đôi cuối cùng , nghĩa là, (< < < _1) {m, tất cả trừ mục cuối cùng.

và nhiều hơn một chút trong Learning J: Chapter 6 - Indexing: 6.2.5 Excluding Things.

+0

Đó là một cú pháp rất khác thường nhưng chắc chắn đơn giản hơn con đường của tôi. –

+1

Cách của bạn hiệu quả hơn đáng kể khi xóa một mục. Nó có lẽ là hiệu quả nhất (ít nhất là giữa việc sử dụng '{', '; .' hoặc'/.'). – Eelvex

3

Một cách tiếp cận khác là sử dụng các hình thức đơn điệu và kiểu chữ là # (Kiểm tra và Sao chép). Thành ngữ này sử dụng Sao chép để xóa mục là thứ tôi thường xuyên sử dụng.

Móc (i. [email protected]#) sử dụng Tally (monadiC#) và monadic và cặp đôi i. (Số nguyên và chỉ số) để tạo ra các chuỗi lọc:

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

mà Sao chép (cặp đôi #) sử dụng để bỏ qua các mục thích hợp.

2 ((i. [email protected]#) # ]) 0 1 2 3 4 5 
0 1 3 4 5 
    2 ((i. [email protected]#) # ]) 'abcde' 
abde 
Các vấn đề liên quan