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



我有一个列表

   n =: i.3

我想要一个副词a,使u a nu应用于n的后缀的前缀:

   <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

请帮帮我。提前谢谢。

这个词(几乎)已经有一个副词了。它是要应用于级别0的排列(S:)。

例如

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

最新更新