Scalaベースの高次関数

1035 ワード

定義ていぎ:高次関数(関数パラメータ付き関数):ある関数を別の関数のパラメータ値として使用します.
高次関数の例
(*)map:       ,               (        ),        
         val numbers = List(1,2,3,4,5,6,7,8,9,10)
		 numbers.map((i:Int)=>i*2)
		    numbers.map(_ * 2)
		 
(*)foreach:       ,               (        ),     
         numbers.foreach((i:Int)=>i*2)


(*)filter:   ,         
		     2     
		numbers.filter((i:Int)=> i%2==0)    true,     

(*)zip:     
		List(1,2,3).zip(List(4,5,6))


(*)partition:     (    ,           )   ,     
		  :    2        ,           
		numbers.partition((i:Int)=> i%2==0)

(*)find:          (  )   
                3     
		numbers.find(_%3 == 0)

(*)flatten:        
		List(List(2, 4, 6, 8, 10),List(1, 3, 5, 7, 9)).flatten

(*)flatMap     map + flatten
		var myList = List(List(2, 4, 6, 8, 10),List(1, 3, 5, 7, 9))
		myList.flatMap(x=> x.map(_*2))
		   res16: List[Int] = List(4, 8, 12, 16, 20, 2, 6, 10, 14, 18)
		
		  : (1) List(2, 4, 6, 8, 10) List(1, 3, 5, 7, 9)  x=> x.map(_*2)
		     (2)      List