亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 38219 | 回復(fù): 3
打印 上一主題 下一主題

函數(shù)式語(yǔ)言的不動(dòng)點(diǎn)技巧應(yīng)該什么時(shí)候以什么方式使用為好? [復(fù)制鏈接]

論壇徽章:
8
2015年迎新春徽章
日期:2015-03-04 09:58:112015元宵節(jié)徽章
日期:2015-03-06 15:51:33數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-06-09 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-06-10 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-20 06:20:0015-16賽季CBA聯(lián)賽之同曦
日期:2016-07-21 21:26:51數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-23 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-26 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-07-24 10:04 |只看該作者 |倒序?yàn)g覽
函數(shù)式語(yǔ)言的不動(dòng)點(diǎn)技巧應(yīng)該什么時(shí)候以什么方式使用為好?

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
2 [報(bào)告]
發(fā)表于 2016-07-26 01:21 |只看該作者
例如: That About Wraps it Up: Using FIX to Handle Errors Without Exceptions, and Other Programming Tricks

大概是講這么個(gè)事情。。。
1. 把需要遞歸的函數(shù)f寫(xiě)成非遞歸的形式f'
2. 用fix把非遞歸的f'再轉(zhuǎn)換成與原始f類似的函數(shù)

然而在1到2之間, 可以插入很多步驟, 將f'進(jìn)行各種轉(zhuǎn)換, 最終在2里面用fix把它再轉(zhuǎn)換成與原始f類似, 但有一些新功能的函數(shù)。

  1. fun fact i = if i = 0 then 1 else i * fact (i-1) ;
復(fù)制代碼
這是個(gè)求階乘的函數(shù), 它的函數(shù)體直接調(diào)用自己。
于是一旦開(kāi)始調(diào)用這個(gè)函數(shù), 它就會(huì)一直重復(fù)不斷地調(diào)用自己, 直到i為0。

1. 現(xiàn)在先將它寫(xiě)成非遞歸形式:

  1. val fact_ = fn fact => fn i => if i = 0 then 1 else i * fact (i-1) ;
復(fù)制代碼
fact_ 沒(méi)有直接調(diào)用自己, 它調(diào)用的只是自己的一個(gè)參數(shù)。

2. "FIX fact_" 就得到一個(gè)與fact類似的函數(shù)。


將 fact 寫(xiě)成 fact_ 后, 因?yàn)椴辉僦苯诱{(diào)用自己, 所以就可以在每一個(gè)調(diào)用上作一些事情。

比如打印出中間結(jié)果:

  1. val wrap = fn f => fn f’ => fn p =>
  2.   let
  3.     val result = f f’ p
  4.   in
  5.     print (Int.toString result); print "\n"; result
  6.   end ;
  7. val fact_’ = wrap fact_ ;
  8. val fact’ = FIX fact_’ ;
  9. > fact’ 10;
  10. 1 1 2 6
  11. 24
  12. 120
  13. 720
  14. 5040
  15. 40320
  16. 362880
  17. 3628800
  18. val it : int = 3628800
復(fù)制代碼
論文里面還有很多類似的應(yīng)用, 比如記憶化, 比如將produce/consume拆開(kāi)讓它們交替執(zhí)行, 等等。。。

論壇徽章:
8
2015年迎新春徽章
日期:2015-03-04 09:58:112015元宵節(jié)徽章
日期:2015-03-06 15:51:33數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-06-09 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-06-10 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-20 06:20:0015-16賽季CBA聯(lián)賽之同曦
日期:2016-07-21 21:26:51數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-23 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-26 06:20:00
3 [報(bào)告]
發(fā)表于 2016-07-27 18:45 |只看該作者
=>是什么意思?

論壇徽章:
8
2015年迎新春徽章
日期:2015-03-04 09:58:112015元宵節(jié)徽章
日期:2015-03-06 15:51:33數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-06-09 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-06-10 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-20 06:20:0015-16賽季CBA聯(lián)賽之同曦
日期:2016-07-21 21:26:51數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-23 06:20:00數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-26 06:20:00
4 [報(bào)告]
發(fā)表于 2016-08-22 07:38 |只看該作者
wrap函數(shù)是干什么的?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP