scala> def lift3[A,B,C,D] (
| f: Function3[A,B,C,D]): Function3[Option[A], Option[B], Option[C], Option
[D]] = {
| (oa: Option[A], ob:Option[B], oc: Option[C]) =>
| for(a <- oa; b <- ob; c <- oc) yield f(a,b,c)
| }
lift3: [A, B, C, D](f: (A, B, C) => D)(Option[A], Option[B], Option[C]) => Option[D]
、次の行:誰かが以下のスカラコードを説明することはできますか?特に
def lift3[A,B,C,D] (
f: Function3[A,B,C,D]): Function3[Option[A], Option[B], Option[C], Option
[D]]
これはジョシュアD Suereth(2.1、チャプターリスト2)で深さが本スカラから取られます。私は追加のOption[D]
がどのような目的のために役立つのか分かりません。関数の本体では、コードは出力タイプD
の最初の3つのパラメータにのみマッピングされます。そのとき、D
が入力パラメータリストで宣言されていますか?何か不足していますか?
私の理解は限られていますが、関数宣言は、関数をパラメータ(4つのパラメータを取る)とし、4つのパラメータをとる関数を返す関数として宣言します。また、なぜ返品の種類についての言及はありませんか? ありがとうございます!
ありがとうドキュメントで見つけることができます!最終的なパラメータが戻り値の型であるという慣習に関するいくつかのドキュメントを指摘できますか? – MojoJojo
私の答えには、ドキュメントへのリンクがあります:) –