使用 J 中的变量柯里化函数

Currying a function with a variable in J

我可以创建一个函数,将 22&\* 相乘,实际上 20 = (2&\*)10

我想做的是创建一个工厂函数,使这些按订单进行。

所以,我想要一个 monad f s.t。 ( f y ) x == (y * x )

虽然 (\*& 2) 3 有效 ((\*&) 2) 3 无效,因此明确尝试:

(3 : 'y&*') 2 产生语法错误。

我哪里错了?

构成动词的动词实际上是副词1 in J:

f =: 1 : 'm&*'
2 f
2&*

(2 f) 5
10

(i.10)f 5
0 5 10 15 20 25 30 35 40 45

或默认:

f =: &*
2 f
2&*

h =: 3 :'...' 不会工作,因为它会产生一个动词,然后 h y 想成为一个名词。

g =: 4 :'x&* y' 很好,相当于 f.

[1]: 或连词