究竟是什么#^:_ 1

时间:2015-04-03 21:56:17

标签: j

所以我在j网站上看到了这段代码:

mask #!.fill^:_1 lst

其中mask是一个位列表。

尽可能有意义。结果是mask&#的正面,应用于lst,未知值替换为fill。

然而,它似乎没有概括:

2 2 (#!._^:_1) 3 3 4 4

会产生域错误,而不是像你期望的那样产生#34; 3 4"

到底是什么#^:_ 1,为什么它不是#的正确正面?

1 个答案:

答案 0 :(得分:4)

我相信(#!._^:_1)通过获取索引值(如果位置有一个)或填充填充值(如果它是零)来展开正确的参数。

   (1 1 0 1 0 1)   (#!._^:_1) 3 3 4 4
3 3 _ 4 _ 4

它没有完全概括,因为其他1或0的值将导致您看到的域错误。请参阅此词典页面上的案例6。 http://www.jsoftware.com/help/dictionary/d202n.htm

您可能还会看到复杂数字与#的标准(非正面)版本交互的方式,因为这似乎更具普遍性。

2j1   #!._ 3 3 4 4
3 3 _ 3 3 _ 4 4 _ 4 4 _
   2j1 1j2 3j0 1j1   #!._ 3 3 4 4
3 3 _ 3 _ _ 4 4 4 4 _

在这种情况下,复杂参数mjn的实际组件使相应正确项的m个副本和虚构组件填充n填充值。 http://www.jsoftware.com/help/dictionary/d400.htm