如何计算不使用任何变量的递归函数调用自身的次数

我有一个名为collat​​z的函数,我需要查找它调用自身的次数,但不允许使用任何变量。

该功能与vars完美配合,但我必须使用vals。

coder002 回答:如何计算不使用任何变量的递归函数调用自身的次数

如果sinanspd的答案不能回答您的问题,请参考以下示例代码。

让我们说您的函数collat​​z具有如下签名:

def collatz(input: Type1): Type2 = ???

计算调用次数的方法是修改collat​​z本身,或者使用某些包装函数。

def counter(oldCount: Int,fun: Type1 => Type2,input: Type1): (Int,Type2) = {
  val output = fun(input)
  (oldCount + 1,output)
}

第一次调用计数器时,将oldCount设置为0进行调用。每次调用计数器时,请传入旧版本的count。输出元组的第一个值将是新计数。

本文链接:https://www.f2er.com/3136777.html

大家都在问