J 幂函数的语言等级

标签 j

t=:1
test=: monad define
    t=.y
    t=. t, 0
)   
testloop=: monad def'test^:y t'
testloop 1
1 0
testloop 2
1 0 0
testloop 10
1 0 0 0 0 0 0 0 0 0 0

为了简化这个

(testloop 0),(testloop 1), (testloop 2), ...

110100100010000...

我试过了

, testloop"0 (i.10)

但它给出

1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0...

我的等级似乎有问题,我不知道该使用哪一个。 如果您能在这个问题上帮助我,我将不胜感激。 谢谢!

最佳答案

这与其说是排名问题,不如说是结果用零填充以使行长度匹配。

   testloop 1
1 0
   testloop 2
1 0 0
   testloop"0 [ 1 2 
1 0 0
1 0 0
   testloop"0 [ 1 2 3
1 0 0 0
1 0 0 0
1 0 0 0

如果我重新定义您的 testteSTLoop 以添加不同的附加数字,我们可以看到填充是如何工作的。

   test2 =: 3 : 0
​t=. y
​t=. t,2
​)
   test2loop=: monad def'test2^:y t'
   test2loop"0 [1
1 2
   test2loop"0 [2
1 2 2
   test2loop"0 [ 1 2 NB. 0 padded in first row
1 2 0
1 2 2
   test2loop"0 [ 1 2 3  NB. 0's padded in first two rows
1 2 0 0
1 2 2 0
1 2 2 2

为了解决填充问题,我将使用 each=: &.> 以便在组合之前将结果装箱以避免填充。

   testloop each 1 2 3
+---+-----+-------+
|1 0|1 0 0|1 0 0 0|
+---+-----+-------+
   testloop each i. 10
+-+---+-----+-------+---------+-----------+-------------+---------------+-----------------+-------------------+
|1|1 0|1 0 0|1 0 0 0|1 0 0 0 0|1 0 0 0 0 0|1 0 0 0 0 0 0|1 0 0 0 0 0 0 0|1 0 0 0 0 0 0 0 0|1 0 0 0 0 0 0 0 0 0|
+-+---+-----+-------+---------+-----------+-------------+---------------+-----------------+-------------------+

使用;拆箱并拆解结果

   ; testloop each i. 10
1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

说实话,我更倾向于使用复数作为 # 的左参数引入 0 进行填充。 0 的数量取决于复数的虚数。

   1j0 # 1
1
   1j1 # 1
1 0
   1j2 # 1
1 0 0
   test3=: monad def '(1 j. y)#1'
   test3 1
1 0
   test3 2
1 0 0
   test3 1 2
1 0 1 0 0
   test3 i. 10
1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

关于J 幂函数的语言等级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46964784/

相关文章:

performance - 使用 J 编程语言编写大型项目

j - 添加 2 个矩阵

j - 从 J 中的正态分布生成随机数

J : Iverson's `table` function from _A Personal View of APL_

j - 如何用脚本自动调用J(ijconsole)

matrix - J:输入矩阵的简便方法?

random - 如何在 J 中生成多元正态分布

vim - 像逐行输入解释器一样运行 J 脚本

j - 如何在 Linux 上运行独立的 ijs j 文件?