J:如何有效地将动词应用于后缀的前缀?

时间:2014-09-22 16:37:32

标签: list prefix j

我有一个清单

   n =: i.3

我希望有一个副词 a ,以便 uan 应用于后缀的前缀强>名词:

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

我写了一句为动词&lt; 产生理想结果的句子:

   ([: <@]\&.> <@]\.) 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││
│└─┴───┴─────┘│└─┴───┘│└─┘│
└─────────────┴───────┴───┘

但它也专门针对&lt; 编写,可能效率不高。我仍然无法得到如何制作副词。

如果我能得到以下结果会更好:

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

例如:

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

请帮帮我。提前谢谢。

1 个答案:

答案 0 :(得分:3)

已经(几乎)已经有了这个副词。它是您要应用于级别0的{​​{3}}。

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\)\.)'