所以我在j网站上看到了这段代码:
mask #!.fill^:_1 lst
其中mask是一个位列表。
尽可能有意义。结果是mask&#的正面,应用于lst,未知值替换为fill。
然而,它似乎没有概括:
2 2 (#!._^:_1) 3 3 4 4
会产生域错误,而不是像你期望的那样产生#34; 3 4"
到底是什么#^:_ 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