私はscalaを初めて使っていますが、1つの数値が定数で2つの数値を入力する部分関数を定義したい場合があります。 数値を入力として渡し、部分を取る別の方法を定義します。 入力として機能し、キューブを結果として与える。パーシャル関数の入力として定数整数を取る方法は?
答えて
以下の部分関数はこのプログラムで、タプルの要素に任意の数の追加部分関数を定義することによって、概念を拡張
scala> val addConstantTo: PartialFunction[(Int, Int), Int] = {
| case (a, b) => a + b + 12345
| }
addConstantTo: PartialFunction[(Int, Int),Int] = <function1>
scala> addConstantTo((12, 34))
res4: Int = 12391
に渡されるタプルの各番号に12345を追加します
ビットのためにあるシンクscala> def addTo(c: Int): PartialFunction[(Int, Int), Int] = {
| case (a, b) => a + b + c
| }
addTo: (c: Int)PartialFunction[(Int, Int),Int]
scala> val pf = addTo(3)
pf: PartialFunction[(Int, Int),Int] = <function1>
scala> pf((1, 2))
res5: Int = 6
みましょう:)
ええ、しかし、これが定義されていない '(Int、Int)'ドメインがないので、それを 'PartialFunction'にするのはちょっと意味がありません。私は、OPが宿題を読んだり理解しなかったり、実際には探しているものが部分的に適用された機能(すなわち、カレー)であるかどうか疑問に思います。 – jwvh
OPの動機づけは何であるか分かりませんが、私のビジネスはありません。 'PartialFunction'は'(A)⇒B'を拡張しているので、少なくとも部分的にはOOの観点からは、完全な関数になります。 http://www.scala-lang.org/api/current/scala/PartialFunction.htmlを参照してください。 'PartialFunction'がどこにも定義されていないという要件はありません。 –
うーん...あなたの定数がどこから来ているに依存しますか?
選択肢1 - あなたの関数は、スコープ内に定数が存在するクロージャを形成します。
val yourConstant = 10
val pf: PartialFunction[(Int, Int), Int] = {
case (x, y) => x + y + yourConstant
}
pf((5, 10))
選択肢2 - 関数にローカル定数があります。
val pf: PartialFunction[(Int, Int), Int] = {
case (x, y) => x + y + 10
}
pf((5, 10))
また、多くの人が指摘しているように、これは部分的機能の使用例のようには見えません。 Partial Function
を入力し、partially applied function
を入力しないことを確認してください。
あなたはその後、部分的に適用される関数を探していた場合、
// first you need a curried function
// Curries function are function which can take parameters in steps to build intermidatary functions.
def normalDef(c: Int)(x: Int, y: Int): Int = c + y + x
// normalDef: normalDef[](val c: Int)(val x: Int,val y: Int) => Int
// now you can "partially apply" this "curried" function to your partially applied function
val addTo10PartiallyApplied = normalDef(10) _
// addTo10PartiallyApplied: (Int, Int) => Int = $Lambda$1240/[email protected]
val total = addTo10PartiallyApplied(1, 2)
// total: Int = 13
- 1. Javaの入力として定数を入力する方法
- 2. 関数の出力を取得し、別の関数の入力として使用する方法python?
- 3. UITextField入力を整数として取得するには
- 4. python3の入力として単純な整数行列を取る方法
- 5. NodeJS Map関数を使用してthen()関数の入力としてthen()関数を返す方法
- 6. ユーザーCから入力整数を取得する方法
- 7. 分類における入力変数と入力変数と出力変数の間の関係または相関を決定する方法は?
- 8. 整数入力を取得する関数はありますか?
- 9. 関数の引数として入力$ id値を使用する方法
- 10. Split()関数の処理:返品/タブ入力の調整方法
- 11. Python Tkinterリスト内の整数としての複数行入力
- 12. 関数を引数として取る方法は? (Python)
- 13. ...関数の引数を別の関数の入力として使用する
- 14. gather()関数で複数の列を指定してデータを整える方法
- 15. 入力した関数を入力してtkinterに出力する方法
- 16. 別の関数の入力としての関数名?
- 17. 入力がある関数と入力がない関数 - Python
- 18. Matlabでは、複数入力関数の場合、1つの入力を複数の入力として使用する方法はありますか?
- 19. C++ scanf関数を使用して__int16_t整数を読み取る方法
- 20. SQL関数の入力の長さを決定する方法
- 21. 関数のデフォルト値として入力
- 22. 関数のパラメータとして入力
- 23. ファイル入力を使用して整数を入力する
- 24. バック関数に関数からの出力データを再入力する方法
- 25. Matlab Coderでさまざまな入力数を持つ関数の入力タイプを定義する方法は?
- 26. ラケットの引数として関数の単一整数を固定する方法
- 27. pythonで関数を定義する方法。関数を入力して引数をとり、それを関数に適用する。
- 28. 入力関数input_fn()の作成方法
- 29. onclick関数と入力関数複数の変数
- 30. テキストファイルからJavascript変数として整数データを取得する方法は?
ので、この関数は、部分的なことでなければならない理由は?そしてそれを実装することであなたの問題は何ですか?それは簡単だね。 – SergGr
@SergGr私はスカラの初心者であり、上記の操作を行う必要があるユースケースの1つを理解するのが難しく、別の関数への入力としてその部分関数を取り、そのキューブを見つけようとしています –
私の最高の推測は、2つの異なる用語を組み合わせることです: "_partial function_" - 正の値に対してのみ定義された平方根のようなすべてのパラメータで定義されていない関数を意味します。 「部分的に適用されたfunction_」は、多くのパラメータの機能を持っていて、いくつかをバインドしてより少ないパラメータで機能させることを意味します。 – SergGr