tail-recursion

    2热度

    2回答

    我有两个问题, 能一尾递归函数比2点的参数吗? 以下实现在指数函数中,其基数为 提高到其功率,有没有其他方法可以进一步改进 下面的函数? 这是我的代码: #include <stdio.h> int power(int m,int n, int o); int powerAux(int m, int n); main() { printf("%d\n", powerAux(2,

    0热度

    3回答

    我在教自己的scala并试图增强我的FP技能。 我的一个参考文献,编程语言基础(available here),有一个方便的递归函数列表。在第27/50页上,我们被要求实现swapper()函数。 (swapper s1 s2 slist) returns a list the same as slist, but with all occurrences of s1 replaced by s

    1热度

    3回答

    我需要编写java方法来计算用户输入的任意前两个数字的斐波那契数列,假设用户输入10和20,并且希望系列的前5个数字,输出将是10 20 30 50 80。我已经实现了这样做的迭代方法,但是我的问题是使用RECURSIVE方法来完成它。 public int fRec(int n) { //base case of recursion if ((n == 0) |

    2热度

    1回答

    Chapel支持递归函数调用,但它是否支持尾部调用优化,以便尾部递归不使用额外的栈帧?

    1热度

    3回答

    我试图写在斯卡拉尾递归快速通过建立一个持续的工作,而无需使用蹦床。到目前为止,我有以下几点: object QuickSort { def sort[A: Ordering](toSort: Seq[A]): Seq[A] = { val ordering = implicitly[Ordering[A]] import ordering._ @scal

    0热度

    1回答

    我最近发现了inspect,并认为是否可以手动删除当前帧的“外部”帧,从而实现尾递归优化。 可能吗?怎么样?

    0热度

    2回答

    我想写一个函数重复(s:String,n:Int)将连接字符串sn时间并返回它,但由于某种原因,我没有得到正确的结果,并得到一个错误,它不是尾递归,并且我在逻辑上难以理解为什么这不是尾递归。 递归是否必须在连接完成之前进行处理?我将如何解决这个问题?使递归重复(s + s,n-1)将不起作用,因为它会递归s太多次,但我不确定还有什么其他方式来做到这一点。 /** * Returns concat

    3热度

    1回答

    在讲座期间,我给出了tail调用的定义,它是在尾部环境中发生的调用表达式。我抬头尾上下文的定义中The Revised Report on the Algorithmic Language Scheme: 甲尾呼叫是发生在一个尾上下文一个过程调用。尾部上下文是归纳定义的。请注意,尾部上下文始终是针对特定的lambda表达式确定的。 我不觉得这其中的任何一个实际上已经清楚地确定了尾巴背景是什么,有人

    1热度

    2回答

    我想用一个简单的尾递归来检索列表列表的所有排列。该模块是这样的: defmodule Permutations do def of([], accumulator) do accumulator end def of([head | tail], accumulator) do for item <- head, do: of(tail, ac

    0热度

    2回答

    我做了这个方法来解决问题,我需要覆盖距离从(1-6)按步骤骰子和计算所有可能的方式来达到距离 我提出这种方法 static int watchCount(int distance) { // Base cases if (distance<0) return 0; if (distance==0) return 1; return watchCount(