#^:_1 究竟是什么

What exactly is #^:_1

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

mask #!.fill^:_1 lst

其中掩码是位列表。

说得有道理。结果是 mask&# 的反面,应用于 lst,未知值替换为 fill.

不过,好像不能一概而论:

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

产生域错误,而不是您可能预期的“3 4”。

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

我相信 (#!._^:_1) 通过在位置为 1 时采用索引值或在为 0 时填充填充值来展开正确的参数。

   (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