黒猿の家:Scalaの高階関数

私たちは、高階関数と呼ばれる引数としての機能を受け入れることができます。

図1に示すように、高次関数の使用

def highOrderFunction1(f: Double => Double) = f(10)
def minus7(x: Double) = x - 7
val result2 = highOrderFunction1(minus7)
println(result2)

図2に示すように、高次関数を用いるII

def highFunction(x:Int,y:Int,f:(Int,Int)=>Double) = f(x,y)
def subF(a:Int,b:Int):Double={
  a*b
}
println(highFunction(2,3,subF))

3、機能(名称)パラメータ解析

// F:=>ダブル関数fは、パラメータを取らず、double型の値を返すことを示している
機能は、タイプのIntのパラメータを取ることを示し、double型の値を返すのInt =>ダブルF:// F
/ / F:(INT、列) =>ダブルfは関数は、パラメータint型、パラメータ・タイプ文字列を2つのパラメータをとり、double型の値を返すことを示し

図4に示すように、閉鎖カリー化+ +復帰機能タイプ

高階関数は、関数の型を返すことができます

カレー関数は、高階関数は、関数の型を返すことがあり、同様の機能を2つのパラメータを受信する機能を有することができ、カリー化関数と呼ばれる戻り型として使用することができ、そのセグメンテーション・ビット、二つの機能に、各関数は生成されない概念スカラを設計するために(ハスケル・カリー)カレー、カリーある一つの引数を取るが、関数型プログラミングスカラ不可避製品の設計では、として使用することができる関数オブジェクトであります別の関数の戻り値

クロージャ
クロージャは、関数のうち、関数のパラメータ内にある、と呼ばれる閉鎖

def m1(x:Int) = (y:Int) => x-y
println(m1(10))
println(m1(10)(3))
val function1 = m1(10)
val i6 = function1(3)
println("i6-------       "+i6)

ます。https://www.jianshu.com/p/ef75d8359e9eで再現

おすすめ

転載: blog.csdn.net/weixin_33910460/article/details/91182467