【发布时间】:2017-09-28 14:28:44
【问题描述】:
比如函数g=(x-y)/(x-z)怎么写? 我知道如何编写带有 2 个参数的函数。
【问题讨论】:
标签: j
比如函数g=(x-y)/(x-z)怎么写? 我知道如何编写带有 2 个参数的函数。
【问题讨论】:
标签: j
一种方法是使用变量匹配:
f =: 3 : 0
'x y z' =. y
(x-y)%(x-z)
)
f 1; 2; 3
0.5
f 1 2 3
0.5
f 1.5; 2; 0.5
_0.5
另一种方法是将变量视为数组v -> x y z 并将函数定义为一系列数组操作。例如:
+/ 1 _1 0 * x y z,+/ 1 0 _1 * x y z,%/
这可以写成:
g =: 3 :'%/ F (+/ . *) y'
F 在哪里
1 _1 0
1 0 _1
:
g 1 2 3
0.5
g 1.5 2 0.5
_0.5
你可以把这个写得太远了:
h =: 3 : '((0{y) - (1{y)) % ((0{y) - (2{y))'
但您可能不应该这样做。
【讨论】: