Functional Programming in Scala読書会@渋谷 - connpass
Calling HOFs with anonymous functions
無名関数と高階関数
名前付きの関数と同じようにつかえる
無名関数の例
findFirst(Array(7,9,13), (x: Int) => x == 9)
- 関数も値
- Scalaの特別ルール applyメソッドを持っている
- Function2 ScalaのなかのTrait
なにがなんだか
- 型シグネチャをみようず。
- partial1は高階関数で、引数を部分的に適用する。
// Polymorphic functions are often so constrained by their type // that they only have one implementation! Here's an example: def partial1[A,B,C](a: A, f: (A,B) => C): B => C = (b: B) => f(a, b)
- アノテーションは省略出来る
カリー化
// Note that `=>` associates to the right, so we could // write the return type as `A => B => C` def curry[A,B,C](f: (A, B) => C): A => (B => C) = // a => (b => f(a, b)) a => b => f(a, b)
compose
// Exercise 5: Implement `compose` def compose[A,B,C](f: B => C, g: A => B): A => C = a => f(g(a))
P31のコラムの上まで。