【问题标题】:How to write a function with more than 3 parameters in J?如何在J中编写一个参数超过3个的函数?
【发布时间】:2017-09-28 14:28:44
【问题描述】:

比如函数g=(x-y)/(x-z)怎么写? 我知道如何编写带有 2 个参数的函数。

【问题讨论】:

    标签: j


    【解决方案1】:

    一种方法是使用变量匹配:

    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))'
    

    但您可能不应该这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多