2014-09-22 65 views
4

我有一個列表J:如何有效地將動詞應用於後綴的前綴?

n =: i.3 

,我想有一個副詞一個這樣UAN適用後綴ňü前綴:

<a n 
┌─────────────┬───────┬───┐ 
│┌─┬───┬─────┐│┌─┬───┐│┌─┐│ 
││0│0 1│0 1 2│││1│1 2│││2││ 
│└─┴───┴─────┘│└─┴───┘│└─┘│ 
└─────────────┴───────┴───┘ 

我寫了一個句子,爲動詞產生了理想的結果

([: <@]\&.> <@]\.) n 
┌─────────────┬───────┬───┐ 
│┌─┬───┬─────┐│┌─┬───┐│┌─┐│ 
││0│0 1│0 1 2│││1│1 2│││2││ 
│└─┴───┴─────┘│└─┴───┘│└─┘│ 
└─────────────┴───────┴───┘ 

,但我不能讓如何讓副詞與任何動詞使用。

我看到另一種方法解決這個問題:

a =: \\. 
    <a n 
┌─┬───┬─────┐ 
│0│0 1│0 1 2│ 
├─┼───┼─────┤ 
│1│1 2│  │ 
├─┼───┼─────┤ 
│2│ │  │ 
└─┴───┴─────┘ 
    ([: < (a: ~: ]) # ])"1(<a n) 
┌─────────────┬───────┬───┐ 
│┌─┬───┬─────┐│┌─┬───┐│┌─┐│ 
││0│0 1│0 1 2│││1│1 2│││2││ 
│└─┴───┴─────┘│└─┴───┘│└─┘│ 
└─────────────┴───────┴───┘ 

但它也是專門爲<寫的,也許不是有效的。我仍然無法得到如何製作副詞。

它會更好,如果我能得到以下結果:

<a n 
┌─┬───┬─────┬─┬───┬─┐ 
│0│0 1│0 1 2│1│1 2│2│ 
└─┴───┴─────┴─┴───┴─┘ 

例如:

(10&#.)a n 
0 1 12 1 12 2 

請幫助我。提前致謝。

回答

3

這裏有(幾乎)已經有一個副詞。這是您要應用到0級別的Spread (S:)

E.g.

<\ each <\. n 
┌─────────────┬───────┬───┐ 
│┌─┬───┬─────┐│┌─┬───┐│┌─┐│ 
││0│0 1│0 1 2│││1│1 2│││2││ 
│└─┴───┴─────┘│└─┴───┘│└─┘│ 
└─────────────┴───────┴───┘ 
< S:0 <\ each <\. n 
┌─┬───┬─────┬─┬───┬─┐ 
│0│0 1│0 1 2│1│1 2│2│ 
└─┴───┴─────┴─┴───┴─┘ 

+/ S:0 <\ each <\. n 
0 1 3 1 3 2 

(10&#.) S:0 <\ each <\. n 
0 1 12 1 12 2 

換句話說,你可以a是這樣的:

a =: 1 :'u S: 0 ([: <\&.><\.) y' 

(編輯)或者,如@Tikkanz在評論中說,下面,就可以避免S:,並使用更高效:

a=: 1 : ';@([: u\&.> <@]\.)' 

a=: 1 : ';@(<@(u\)\.)' 
+0

謝謝Eelvex。我不知道S:原始的。 – 2014-09-23 10:24:44

+0

不使用'S:'的替代方法是:'a =:1:'; @([:u \>><@] \。)'' – Tikkanz 2014-09-23 10:34:29

+2

或簡單的'a =:1:'; @ (u \)\。)'' – Tikkanz 2014-09-23 10:41:56