Last active
March 3, 2021 01:14
-
-
Save Guvalif/f48352df147172b9de2a2a78373c9679 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
// FP in Scala の map2 から apply (<*> 演算子) を導出する型パズル,スタート! | |
def map2[F[_], A, B, C](fa: F[A], fb: F[B])(f: (A, B) => C): F[C] = ??? | |
// A に X => Y を代入 | |
def map2[F[_], X => Y, B, C](fxy: F[X => Y], fb: F[B])(f: (X => Y, B) => C): F[C] = ??? | |
// B に A を代入 | |
def map2[F[_], X => Y, A, C](fxy: F[X => Y], fa: F[A])(f: (X => Y, A) => C): F[C] = ??? | |
// C に B を代入 | |
def map2[F[_], X => Y, A, B](fxy: F[X => Y], fa: F[A])(f: (X => Y, A) => B): F[B] = ??? | |
// X に A を,Y に B を代入 | |
def map2[F[_], A => B, A, B](fab: F[A => B], fa: F[A])(f: (A => B, A) => B): F[B] = ??? | |
// f に eval(g, x) = g(x) をエンクロージングし、f を消去 | |
def map2[F[_], A => B, A, B](fab: F[A => B], fa: F[A]): F[B] = ??? | |
// 不要な型引数を消去し、カリー化 | |
def apply[F[_], A, B](fab: F[A => B])(fa: F[A]): F[B] = ??? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment