在列表上映射 j 函数(使用定义)

mapping j function (used defined) over a list

我已经编写了我自己的指数 (^) 函数版本,它适用于简单的标量:

3 : '+/ (y&^%!) i.50'

它不适用于列表,所以我想用“0

修改它

3 : '+/ (y"0&^%!) i.50'

这适用于列表,但给出了错误的答案。

出现两个问题:

1) 鉴于我对“0 的用法不起作用,是否有一个可以起作用?

2) 如果我无法访问这样的函数定义,那么将它应用于数组的各个元素的最佳方法是什么?

您需要在要映射的函数 (y&^%!) 上应用秩连词 "0,而不是它的参数 y:

 3 : '+/(y&^%!)"0 i.50'

不过精度不如原生^:

   a =: 3 : '+/(y&^%!)"0 i.50' 4 4 $ 10+i.20
   b =: ^ 4 4 $ 10+i.20
   a = b
1 1 1 1
0 0 0 0
0 0 0 0
0 0 0 0