例如,如何编写函数g =(x-y)/(x-z)? 我知道如何用2个参数编写函数。
答案 0 :(得分:4)
一种方法是使用变量匹配:
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))'
但你可能不应该。