3

给定类型参数F[_]以及A[_]如何将以下类型 lambda 转换为更令人愉悦的 Kind-Projector 语法?

({type λ[α] = F[A[α]]})#λ

我会想象它会像F[A[?_]],但编译器抱怨在这种情况下需要类型参数。

4

2 回答 2

2

使用Lambda(或λ)语法有效:

λ[α => F[A[α]]]

可在Function Syntax下找到。

于 2015-11-11T20:26:48.773 回答
0

您应该尽可能使用内联语法,但在这种情况下,您必须将函数语法与嵌套参数化类型一起使用。

此外,如果项目启用了种类投影仪,Intellij IDEA 15 具有将类型 lambdas 转换为种类投影仪语法的检查。所以这就是检查将您的类型 lambda 转换为:Lambda[α => F[A[α]]]

于 2015-11-12T08:20:02.937 回答