如何在Kotlin中使用递归类型
我想要做的是这样的事情
fun <F, A, R> recur(f: (F, A) -> R, arg: A): R = f(f, arg) where F = (F, A) -> R
如何在Kotlin中输入这个函数?
你可以定义为
fun <F : (F, A) -> R, A, R> recur(f: F, arg: A): R = f(f, arg)
但是,我没有看到任何令人满意的类型系统方式如何被调用。
我想要做的是这样的事情
fun <F, A, R> recur(f: (F, A) -> R, arg: A): R = f(f, arg) where F = (F, A) -> R
如何在Kotlin中输入这个函数?
你可以定义为
fun <F : (F, A) -> R, A, R> recur(f: F, arg: A): R = f(f, arg)
但是,我没有看到任何令人满意的类型系统方式如何被调用。