[英]How can I define a recursive function type in scala?
我想在scala中定义一个类似于的函数类型:
type RFcn: () => RFcn
但我无法找到一种语法来让它发挥作用。 有谁知道如何做到这一点?
嗯......问题是recursive function
不应该返回一个function
。 这种type RFcn = () => RFcn
看起来不像递归函数。 所以你的问题似乎来自对递归函数的一些误解,并且有点无效。
这种type RFcn = () => RFcn
看起来更像是一种天真的尝试,用于实现表示potential Bottom
某个步骤的状态(读作潜在的无限计算)。 如果这就是你所追求的,那么你可以相应地改变你的问题,并且可能像State monad
对你有用。
不要让我们得到可以回答的部分。 在Scala中,funtions是Function1
, Function2
等的实际实例。所以如果你想要一个代表一个单元到另一个函数的函数的类型,你可以写如下,
type UnitToFunc1[P1, R] = () => Function1[P1, R]
type UnitToFunc2[P1, P2, R] = () => Function2[P1, P2, R]
Sarvesh的回答在我脑海中引发了一些让我想要的东西。 这很简单:
abstract class RFcn extends Function0[RFcn]
这就是我试图表达的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.