6
私は現時点でlambdaという種類のコードを扱っており、IntelliJは「高度な言語機能:反射呼び出し」と警告していることに気づきました。反射呼のScala型ラムダコストはかかりますか?
サンプルコード:
implicit def monoidApplicative[M](M: Monoid[M]) =
new Applicative[({ type f[x] = Const[M, x] })#f] {
def unit[A](a: => A): M = M.zero
override def apply[A,B](m1: M)(m2: M): M = M.op(m1, m2)
}
注:私はそれが型ラムダは、コンパイル時に解決されるという意味になるだろうと、これはIntelliJのScalaのプラグインのバグかもしれないことを把握。
あなたの質問に対する答えはわかりませんが、あなたのコードにたくさんのタイプのlambdaがあると言うなら、https://github.com/non/kind-projector –
をチェックアウトすることをお勧めします。 IJのScalaプラグインがそれをサポートしているかどうか? –
私はまだそれを使っていませんでしたが、これに基づいて:http://blog.jetbrains.com/scala/2015/07/31/inline-refactoring-for-type-aliases-and-kind-projector-support/それはかなりの時間からサポートされるべきです。 –