亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

函數(shù)表達式--遞歸

姘擱『 / 1859人閱讀

摘要:不過,可以使用命名函數(shù)表達式來達成相同的結(jié)果這種方式在嚴(yán)格模式和非嚴(yán)格模式下都行得通

遞歸

遞歸函數(shù)是在一個函數(shù)通過名字調(diào)用自身的情況下構(gòu)成的

function f(num) {
    if (num <= 1) {
        return 1;
    } else {
        return num * f(num - 1)
    }
}
f(3) // 6

var anotherFactorial = f;
f = null; //f指向一個空指針
alert(anotherFactorial(4)); //出錯!

arguments.callee 是一個指向正在執(zhí)行的函數(shù)的指針,因此可以用它來實現(xiàn)對函數(shù)的遞歸調(diào)用

function f(num) {
    if (num <= 1) {
        return 1;
    } else {
        return num * arguments.callee(num-1)
    }
}
f(3) // 6

var anotherFactorial = f;
f = null; //f指向一個空指針
alert(anotherFactorial(4)); //24

但在嚴(yán)格模式下,不能通過腳本訪問 arguments.callee ,訪問這個屬性會導(dǎo)致錯誤。不過,可以使用命名函數(shù)表達式來達成相同的結(jié)果

var factorial = (function f (num) {
if (num <= 1){
return 1;
} else {
return num * f(num-1);
}
});
factorial(4) //24

這種方式在嚴(yán)格模式和非嚴(yán)格模式下都行得通

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/101487.html

相關(guān)文章

  • SICP Python 描述 3.2 函數(shù)和所生成的過程

    摘要:函數(shù)和所生成的過程來源譯者飛龍協(xié)議函數(shù)是計算過程的局部演化模式。在這一章中,我們會檢測一些用于簡單函數(shù)所生成過程的通用模型。也就是說,遞歸函數(shù)的執(zhí)行過程可能需要再次調(diào)用這個函數(shù)。 3.2 函數(shù)和所生成的過程 來源:3.2 Functions and the Processes They Generate 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 函數(shù)是計算過程的局部演化...

    lolomaco 評論0 收藏0
  • ES6函數(shù)與Lambda演算

    摘要:高階函數(shù)函數(shù)式編程中,接受函數(shù)作為參數(shù),或者返回一個函數(shù)作為結(jié)果的函數(shù)通常就被稱為高階函數(shù)。均屬于高階函數(shù),高階函數(shù)并不神秘,我們?nèi)粘>幊桃矔玫健⒖佳菟愫瘮?shù)式編程指南入門康托爾哥德爾圖靈永恒的金色對角線原文函數(shù)與演算 緣起 造了一個輪子,根據(jù)GitHub項目地址,生成項目目錄樹,直觀的展現(xiàn)項目結(jié)構(gòu),以便于介紹項目。歡迎Star。 repository-tree 技術(shù)棧: ES6 ...

    fasss 評論0 收藏0
  • Javascript 中 Y 組合子的推導(dǎo)

    摘要:組合子是演算中的一個概念,是任意函數(shù)的不動點,在函數(shù)式編程中主要作用是提供一種匿名函數(shù)的遞歸方式。組合子如下本文將盡量通俗易懂的以實現(xiàn)匿名函數(shù)遞歸為導(dǎo)向,推導(dǎo)出這一式子。若將替換為,將導(dǎo)致組合子中的作為的參數(shù)被立即求值。 Y 組合子是 lambda 演算中的一個概念,是任意函數(shù)的不動點,在函數(shù)式編程中主要作用是 提供一種匿名函數(shù)的遞歸方式。 Y 組合子如下: $$ λf.(λx.f(x...

    sourcenode 評論0 收藏0
  • Python數(shù)據(jù)結(jié)構(gòu)——解析樹及樹的遍歷

    摘要:左子樹的加法運算結(jié)果為,右子樹的減法運算結(jié)果為。如圖,該圖說明了隨著每個新的字符被讀入后該解析樹的內(nèi)容和結(jié)構(gòu)。使函數(shù)走向基點的遞歸過程就是調(diào)用求值函數(shù)計算當(dāng)前節(jié)點的左子樹右子樹的值。最后,我們將在圖中創(chuàng)建的解析樹上遍歷求值。 解析樹 完成樹的實現(xiàn)之后,現(xiàn)在我們來看一個例子,告訴你怎么樣利用樹去解決一些實際問題。在這個章節(jié),我們來研究解析樹。解析樹常常用于真實世界的結(jié)構(gòu)表示,例如句子或數(shù)...

    miguel.jiang 評論0 收藏0
  • 基于CPS變換的尾遞歸轉(zhuǎn)換算法

    摘要:一個解決的辦法是從算法上解決,把遞歸算法改良成只依賴于少數(shù)狀態(tài)的迭代算法,然而此事知易行難,線性遞歸還容易,樹狀遞歸就難以轉(zhuǎn)化了,而且并不是所有遞歸算法都有非遞歸實現(xiàn)。 前言 眾所周知,遞歸函數(shù)容易爆棧,究其原因,便是函數(shù)調(diào)用前需要先將參數(shù)、運行狀態(tài)壓棧,而遞歸則會導(dǎo)致函數(shù)的多次無返回調(diào)用,參數(shù)、狀態(tài)積壓在棧上,最終耗盡??臻g。 一個解決的辦法是從算法上解決,把遞歸算法改良成只依賴于少...

    supernavy 評論0 收藏0
  • JS函數(shù)達式的特征和遞歸

    摘要:函數(shù)表達式是中的一個既強大又容易令人困惑的特性。函數(shù)表達式有幾種不同的語法形式。匿名函數(shù)的屬性是空字符竄。在把函數(shù)當(dāng)成值使用的情況下,都可以使用匿名函數(shù)。不過,這并不是匿名函數(shù)唯一的用途。不過我們可以使用命名函數(shù)表達式來達成相同的成果。 前言:最近在細(xì)讀Javascript高級程序設(shè)計,對于我而言,中文版,書中很多地方翻譯的差強人意,所以用自己所理解的,嘗試解讀下。如有紕漏或錯誤,會...

    mudiyouyou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<