蜜桃无码视频,国产精品 17c,5g-天天看天天奭免费入口,乱亲女H秽乱长久久久

歡迎來到 常識詞典網(wǎng) , 一個專業(yè)的常識知識學(xué)習(xí)網(wǎng)站!

[ Ctrl + D 鍵 ]收藏本站

您所在的位置:首頁 > 教育學(xué)習(xí) > 知道

知道

在函數(shù)式中,什么是累加器?

分類: 知道 常識詞典 編輯 : 常識 發(fā)布 : 10-23

閱讀 :281

在函數(shù)式編程中,什么是累加器?指函數(shù)式編程中的累加器.2 個答案

答案 1:

因為純函數(shù)式語言是沒有狀態(tài)的,因此在一些循環(huán)計算的時候不能向過程式和OO語言那樣通過修改一個變量來達(dá)到計算的目的,比如對一個列表的數(shù)求和,pyt-on可以這樣:

sum = 0 for num in list: sum += num 而函數(shù)式語言是不能這樣的,只能是使用遞歸,最簡單的形式是(-askell表示): sum :: [Int] -> Int sum (x:xs) = x + sum xs sum [ ] = 0 其實,這里用-askell來做例子是不合適的,因為-askell是lazy evaluation,我們假設(shè)是strict evaluation的,(對不起,今天喝了點酒,lisp一下子也不出來了)。這其實是一個連加式,只有到了最后一項得到0后才能計算出結(jié)果。這是很耗內(nèi)存的。這時候就可以使用累加器了,累加器就是將當(dāng)前的計算結(jié)果放到參數(shù)里,也就是帶著當(dāng)前的狀態(tài)了。 sum :: Int -> [Int] -> Int sum a (x:xs) = sum (a+x) xs sum a [ ] = a 這里的a就是累加器。 因為用的是-askell,這里的累加器不是一個整數(shù),而是一個計算,只有到最后一步返回結(jié)果并且結(jié)果需要一定的計算的時候才會計算成一個整數(shù),否則結(jié)果就是一個連加式的t-unk,如果是lisp一類的strict evaluation語言,每一步的(a + x)都會計算,然后進(jìn)入下一個調(diào)用。即使如此,這兩個實現(xiàn)的區(qū)別還是很明顯的,第一個是普通遞歸,第二個是尾遞歸。如果是lisp,第二個內(nèi)存用量是不變的??偟膩碚f,累加器在strict evaluation的語言里是更常見的。

答案 2:

我估計樓主問的是foldl,foldr中的累加器吧 比如sum可以用foldl實現(xiàn) *Main> foldl (\acc x -> acc + x) 0 [1..10] 55 這個acc被稱為累加器 foldl是個高階函數(shù),它接受一個函數(shù)f作為參數(shù),然后傳兩個參數(shù)給這個函數(shù)f 一個是累加器的初始值,上例中是0,另一個是列表中的第一個元素 函數(shù)f對初始值和第一個元素運算后產(chǎn)生新的累加器(acc+x),然后再取列表中的第二個元素再做同樣的運算,直到全部元素都計算完畢。 另外,上例也可以寫成更簡單的形式 *Main> foldl (+) 0 [1..10] 55

下一篇:支付寶最終的命運是滅亡? 下一篇 【方向鍵 ( → )下一篇】

上一篇:據(jù)說男人婚前覺得女人都不一樣,婚后覺得都一樣,是不是這樣的? 上一篇 【方向鍵 ( ← )上一篇】

亚洲激情成人网站| 国产中文字幕无码在线加勒比| 黄页网站在线观看| 久久久久高清无码中文字幕| 国产刺激久久| 最近中文字幕mv在线直播| 一本一道AⅤ无码中文字幕| 三上悠亚国产一区| 毛片三A级无码久久久一区| 日本东京热人妻网| 全部免费的毛片在线看| 久久亚洲欧美日韩无线| 国产日韩欧美在线视频免费观看| 超碰97人人草| 日韩专区欧美色图| 97色中文字幕| 日韩欧美国产精品综合| 久久精品国产99精品国| 国产精品18禁久久久久白| 亚洲国产精品区| 日韩国产四区| 久久一区日韩| 中文字幕人妻无码专区APP| Aⅴ精品无码无卡在线观看| 国产又粗又猛又爽免费视频| 成人无码区在线观看| 欧美亚洲综合精品| 国产超碰91人人做人人爱| www,色综合| 精品无码人妻一区二区免费aⅤ| 日韩久久久久久久久久久毛片| 工口免费视频网站| h无码在线视频| 理论片午午伦夜理片久久| 肥白的日本老熟妇| 欧美黑人啪精品| 欧美套图日韩精品| 久依人热| 乱子伦hdxxxx| 无码久久人妻一区二区浴池| 昆山市|