0

F# では、次のようにする必要があります。

let price k s t r v =
  let d1 = d1 k s t r v
... and so on

関数に渡されるすべてのパラメーターをリストするのに本当にうんざりしています。パラメータをパラメータ オブジェクトに変換する以外に (私にはできないことです)、パラメータをグループ化する方法はありますか? みたいなことを考えている

let price (k s t r v as foo) =
  let d1 = d1 foo

何か案は?ありがとう。

4

1 に答える 1

5

w, x, y, z次のような高階関数を使用して、引数を効果的にまとめることができます(それらを呼び出します)。

let batchedArgs f = f w x y z

batchedArgsこれで、元の関数の引数を閉じます。同じ数/タイプの引数を取る別の関数を渡すだけで、それらが適用されます。

// other functions which you wish to pass the args to
let sub1 w x y z = 42
let sub2 w x y z = true

// main routine
let doStuff w x y z =
    // one-time declaration of batching function is
    // the only time you need to list out the arguments
    let batchedArgs f = f w x y z

    // from then on, invoke like this
    batchedArgs sub1
    // or like this, which looks more like a traditional function call
    sub2 |> batchedArgs 
于 2013-02-26T20:30:34.423 に答える