Created
March 28, 2015 16:27
-
-
Save FScoward/d85c51b2ffefc6f475f6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def uncurry[A, B, C](f: A => B => C): (A, B) => C = { | |
// (A, B) => C なので、まずは (a, b) を受ける | |
// a, b を受けたら C を返せば良い。 | |
// Cを返すためには 引数として受け取っている f に適用すれば良い | |
// f: A => B => C なので f(a, b) とすることは出来ないため | |
// f(a)(b)の部分適用とする | |
// f(a)(b) は C を返す | |
(a, b) => f(a)(b) | |
} | |
def compose[A, B, C](f: B => C, g: A => B): A => C = { | |
// A => C は 型A を受けて 型C を返す関数を意味する | |
// f は 型B を受けて 型C を返す関数であるため 型B が手に入れば 型Cを返せる | |
// g で 型A を受けて 型B を返すため、f に g を適用すれば良い | |
a => f(g(a)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment