国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

姘擱『 / 1806人閱讀

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

遞歸

遞歸函數(shù)是在一個(gè)函數(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指向一個(gè)空指針
alert(anotherFactorial(4)); //出錯(cuò)!

arguments.callee 是一個(gè)指向正在執(zhí)行的函數(shù)的指針,因此可以用它來實(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指向一個(gè)空指針
alert(anotherFactorial(4)); //24

但在嚴(yán)格模式下,不能通過腳本訪問 arguments.callee ,訪問這個(gè)屬性會導(dǎo)致錯(cuò)誤。不過,可以使用命名函數(shù)表達(dá)式來達(dá)成相同的結(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://m.specialneedsforspecialkids.com/yun/101487.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

    mudiyouyou 評論0 收藏0

發(fā)表評論

0條評論

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