Scala-currying-functions

提供:Dev Guides
移動先:案内検索

Scala-カリー関数

カリー化は、複数のパラメーターを取る関数を、それぞれが単一のパラメーターを取る関数のチェーンに変換します。 カリー化された関数は、次のように、複数のパラメータリストで定義されます-

構文

def strcat(s1: String)(s2: String) = s1 + s2

または、次の構文を使用してカリー化された関数を定義することもできます-

構文

def strcat(s1: String) = (s2: String) => s1 + s2

以下は、カリー化された関数を呼び出すための構文です-

構文

strcat("foo")("bar")

要件に基づいて、カリー化された関数に3つ以上のパラメーターを定義できます。 カリー化の概念を示すために、次のプログラム例を試してください。

object Demo {
   def main(args: Array[String]) {
      val str1:String = "Hello, "
      val str2:String = "Scala!"

      println( "str1 + str2 = " +  strcat(str1)(str2) )
   }

   def strcat(s1: String)(s2: String) = {
      s1 + s2
   }
}

上記のプログラムを Demo.scala に保存します。 このプログラムをコンパイルして実行するには、次のコマンドを使用します。

コマンド

\>scalac Demo.scala
\>scala Demo

出力

str1 + str2 = Hello, Scala!