tail-recursion

    1熱度

    1回答

    在下面的代碼中structList是一個結構體列表,其中每個key是模板中的字符串,value是替換。 %ParamStruct{default: "Greater London", description: "Region", key: "ca_cert_subj_state", label: "State/County", order: 99, required: false, value

    0熱度

    3回答

    我試圖寫有易復發,一旦遇到重複切割序列的功能([1 2 3 1 4]應該返回[1 2 3]),這是我的函數: (defn cut-at-repetition [a-seq] (loop[[head & tail] a-seq, coll '()] (if (empty? head) coll (if (contains? coll head)

    5熱度

    1回答

    我試着在talk中提供以下示例來了解java8中的尾遞歸。 @FunctionalInterface public interface TailCall<T> { TailCall<T> apply(); default boolean isComplete() { return false; } default T result() {

    1熱度

    1回答

    我想設計使用尾遞歸和插入第一順序編程哈斯克爾的算法排序 我想出了這個解決方案 isort :: Ord a => [a] -> [a] isort [] = [] isort [x] = [x] isort (x:xs) = insert (isort xs) where insert [] = [x] insert (y:ys) | x < y = x

    -3熱度

    1回答

    我想解決以下問題:對於給定的n和α,確定最小數目k,其中n可以表示爲k個數字的總和,其中每個數字都是完美的α-th功率。 我的第一個想法是創建一個長度爲n的序列,然後使用遞歸創建具有完美α次方的所有可能序列。在創建序列之後,我會檢查序列中所有數字的總和是否等於n,然後檢查總數是否小於k,如果這些都是真的,那麼我會更新k。我寫了一個解決大多數情況的程序,但由於某種原因不能創建所有可能的序列。例如,如

    1熱度

    2回答

    我希望我的函數能夠對給定列表中的每個數字進行平方,而且,如果lst中的 元素是列表,則該函數將遞歸應用於該元素並對元素進行操作該名單也是如此。 這是我的代碼: (define (sqr-up-rec-tail lst) (define (helper lst newlist) (if (null? lst) newlist (if (list? (car lst))

    0熱度

    1回答

    我目前正在處理大量遞歸調用的側項目。我不是計算機科學家,所以我不確定如何優化我的代碼。我知道遞歸函數效率不高,我聽說你經常可以用tail調用替換它,但我不確定如何去做這件事。這個函數需要三個數組:appendList,sequence和used。其他參數,基數,長度,索引和最後一個詞是整數。 function Recursion(appendList, base, length, sequence

    0熱度

    1回答

    我寫了這個「碼」,顯示問題,因爲實際的代碼是相當大的 (defn add-list ([number] (def used [number]) (add-list number used)) ([number used] ;Add elements to used ;Process the elements in used

    0熱度

    1回答

    我試着做一些未分類的列表上的動畫情節可視化冒泡的變化值,說np.random.permutation(10) 所以很自然我會每它的冒泡排序函數內改變時間追加列表直到完全分類。下面的代碼 def bubblesort(A): instant = [] for i in range(len(A)-1): lindex=0 while lindex+1<len(

    -2熱度

    1回答

    我最近了解到尾遞歸作爲一種遞歸方式,當你給它一個太大的數字來處理時,它不會崩潰。我意識到我可以很容易地將一個尾遞歸作爲一個while循環來重寫,並且它基本上完全相同,這導致我想知道 - 當你用普通循環做所有事情時,有沒有用於遞歸? 是的,遞歸代碼看起來更小,更容易理解,但它也有可能完全崩潰,而簡單的循環無法崩潰做同樣的任務。