J:从数组中创建一个动词族

tan*_*orm 4 j

以下表达式显示了16个基本布尔运算中的每一个的真值表:

   (0 b./; 1 b./; 2 b./; 3 b./; 4 b./; 5 b./; 6 b./; 7 b./; 8 b./; 9 b./; 10 b./; 11 b./; 12 b./; 13 b./; 14 b./; 15 b./) ~ i.2
?????????????????????????????????????????????????????????????????
?0 0?0 0?0 0?0 0?0 1?0 1?0 1?0 1?1 0?1 0?1 0?1 0?1 1?1 1?1 1?1 1?
?0 0?0 1?1 0?1 1?0 0?0 1?1 0?1 1?0 0?0 1?1 0?1 1?0 0?0 1?1 0?1 1?
?????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

如何在括号中重构该部分以删除重复?

澄清:

这里的目标不是生成表,而是学习如何动态生成新动词.为了减少括号的表情,我想以分解出的符号;,/b.,然后用替换数字i.10.

;符号是很容易的:

   ;/i.16
???????????????????????????????????????
?0?1?2?3?4?5?6?7?8?9?10?11?12?13?14?15?
???????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

但是我很难找到从列表中的每个元素生成新动词的方法.

我想也许我正在寻找某种更高阶的组合器,它们允许使用&@常量以外的东西.

例如,nn leftBondEach v可能会使一个动词数组等效于n0 & v; n1 & v; ... ; nn & v:

   bverbs =: (i.16)(leftBondEach)b. NB. would mean (0 b.; 1 b.; ...; 15 b.)
   0 bverbs 0
?????????????????????????????????
?0?0?0?0?0?0?0?0?1?1?1?1?1?1?1?1?
?????????????????????????????????
   0 bverbs 1
?????????????????????????????????
?0?0?0?0?1?1?1?1?0?0?0?0?1?1?1?1?
?????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

我想我需要类似的东西才能附加/到每个函数.

再说一次,这是J,并且可能有一种完全不同的方式来处理这些我还没有讨论过的问题.:)

jpj*_*obs 5

关于什么:

<"2@|:@( (i.16) b./~) 0 1

    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
    |0 0|0 0|0 1|0 1|0 0|0 0|0 1|0 1|1 0|1 0|1 1|1 1|1 0|1 0|1 1|1 1|
    |0 0|0 1|0 0|0 1|1 0|1 1|1 0|1 1|0 0|0 1|0 0|0 1|1 0|1 1|1 0|1 1|
    +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

只注意到$ (i. 16) b. /~ 0 12 2 16,你想要16个盒子,大小为2x2 ......