乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      關(guān)于Squirrel3的Lambda表達(dá)式

       quasiceo 2014-01-15
      分類: 我的工作 2009-12-13 15:36 316人閱讀 評(píng)論(2) 收藏 舉報(bào)

      Squirrel 剛發(fā)布了Squirrel3 beta2版本,一直沒有時(shí)間研究它,這個(gè)周末,終于決定仔細(xì)看看。在Squirrel3 alpha的時(shí)候,就大致知道要加入Lambda表達(dá)式,不過Squirrel本來就將函數(shù)當(dāng)成一個(gè)內(nèi)部變量,Lambda表達(dá)式似乎意義不是很大。

      Squirrel3的Lambda表達(dá)式大概是這樣應(yīng)用的:

      exp := '@' '(' paramlist ')' exp

      例如:local myexp = @(a,b) a + b

      這等同于 local myexp = function(a,b) { return a + b; }


      因此,這個(gè)Lambda表達(dá)式的意義也就是寫法上稍微的簡(jiǎn)潔,只是不知道Alberto Demichelis在實(shí)現(xiàn)的時(shí)候是否對(duì)Lambda表達(dá)式做過優(yōu)化。


      在Squirrel3中,對(duì)Lambda的最大支持是在Array上提供了好幾種內(nèi)部方法,根據(jù)Alberto Demichelis的文檔,增加了以下四種內(nèi)部方法:


      1:map(func(a)),對(duì)Array的每個(gè)元素執(zhí)行func(a)函數(shù)(或者Lambda表達(dá)式),將產(chǎn)生的值放入一個(gè)新的數(shù)組,并返回這個(gè)數(shù)組。這個(gè)內(nèi)部方法有點(diǎn)意思,如果從數(shù)學(xué)角度看,這相當(dāng)于一個(gè)映射變換,也許不是什么革命性的東西,但可以減少代碼的編寫量。

      2:apply(func(a)),這個(gè)內(nèi)部方法的功能與map相似,只是不會(huì)產(chǎn)生新數(shù)組,而是將產(chǎn)生的值直接替換原數(shù)組的值。

      3:reduce(func(prevval,curval)),這個(gè)方法比較奇怪,它相當(dāng)于一個(gè)疊加器,將數(shù)組的第一個(gè)元素傳遞給函數(shù)以后,再將之前函數(shù)的返回值與后續(xù)的元素依次傳遞給函數(shù),最后得到的函數(shù)返回值為輸出值,難道是離散卷積,我得去查查數(shù)學(xué)書,不知道有什么用處。

      4:filter(func(index,val)),這個(gè)方法實(shí)現(xiàn)一個(gè)過濾器,將數(shù)組的序號(hào)和值傳遞給函數(shù),如果函數(shù)返回true,就將這個(gè)值加入到新數(shù)組,否則就過濾掉,最后產(chǎn)生的新數(shù)組作為輸出。

      今天大致研究了這些東西,不知道這些新特性對(duì)自己的工作是否有用了

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多