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(