函數(shù)式程序設(shè)計(jì)語言.ppt
《函數(shù)式程序設(shè)計(jì)語言.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《函數(shù)式程序設(shè)計(jì)語言.ppt(29頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
2020年1月26日星期日 程序設(shè)計(jì)語言范型ProgrammingLanguagesParadigms 教師 張榮華計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院華北電力大學(xué) 函數(shù)式程序設(shè)計(jì)語言 Scheme語言數(shù)據(jù)抽象 第二部分 第五章 Scheme語言數(shù)據(jù)抽象 第五章 3 回顧 任何強(qiáng)有力的程序設(shè)計(jì)語言都必須能表述基本的數(shù)據(jù)和過程 還需要提供對(duì)數(shù)據(jù)和過程進(jìn)行組合和抽象的方法 摘自 計(jì)算機(jī)程序的構(gòu)造和解釋 控制抽象 表達(dá)式層次 語句層次 程序單元層次 數(shù)據(jù)抽象 本章研究內(nèi)容 Scheme語言數(shù)據(jù)抽象 第五章 4 回顧 Scheme語言控制抽象 第五章第二部分 將一個(gè)過程的使用方式 與該過程究竟如何通過更基本的過程實(shí)現(xiàn)的具體細(xì)節(jié)相互分離的一種技術(shù) 基本數(shù)據(jù) 數(shù) 基本過程 算數(shù)運(yùn)算 用復(fù)合 條件 參數(shù)將過程組合起來形成復(fù)合過程 通過define lambda做過程抽象 過程的計(jì)算模式 遞歸計(jì)算和迭代計(jì)算過程 高階過程Scheme語言數(shù)據(jù)抽象 第五章第三部分 討論程序設(shè)計(jì)語言提供的將數(shù)據(jù)對(duì)象組合起來形成復(fù)合數(shù)據(jù)的方式 Scheme語言數(shù)據(jù)抽象 第五章 5 內(nèi)容 1 數(shù)據(jù)抽象導(dǎo)引1 1序?qū)? 2有理數(shù)包的抽象屏障2 表結(jié)構(gòu)2 1序列與閉包性質(zhì)2 2表操作2 3表映射3 函數(shù)式語言高級(jí)抽象綜合實(shí)例 Scheme語言數(shù)據(jù)抽象 第五章 6 1 數(shù)據(jù)抽象導(dǎo)引 數(shù)據(jù)抽象將程序中處理數(shù)據(jù)對(duì)象的表示的部分 與處理數(shù)據(jù)對(duì)象的使用的部分相互隔離起來的一種技術(shù) 例如 考慮線性組合 ax by define linear combinationabxy ax by define linear combinationabxy add mulax mulby 數(shù)據(jù)抽象的關(guān)鍵 構(gòu)造函數(shù) 粘合劑 選擇函數(shù) 分離劑 Scheme語言數(shù)據(jù)抽象 第五章 7 實(shí)例 有理數(shù)的算術(shù)運(yùn)算 假定 存在一種方法可以從分子和分母構(gòu)造出有理數(shù) 存在一種方法可以從已經(jīng)存在的有理數(shù)中分離它的分子和分母 make rat numer denom 從分子n和分母d構(gòu)造有理數(shù)并返回 返回有理數(shù)x的分母 返回有理數(shù)x的分子 構(gòu)造函數(shù) 選擇函數(shù) Scheme語言數(shù)據(jù)抽象 第五章 8 實(shí)例 有理數(shù)的算術(shù)運(yùn)算 例如 實(shí)現(xiàn)兩個(gè)有理數(shù)相加 Scheme語言數(shù)據(jù)抽象 第五章 9 內(nèi)容 1 數(shù)據(jù)抽象導(dǎo)引1 1序?qū)? 2有理數(shù)包的抽象屏障2 表結(jié)構(gòu)2 1序列與閉包性質(zhì)2 2表操作2 3表映射3 函數(shù)式語言高級(jí)抽象綜合實(shí)例 Scheme語言數(shù)據(jù)抽象 第五章 10 1 1序?qū)?Scheme語言提供的構(gòu)造函數(shù)和選擇函數(shù) 內(nèi)部的基本過程 cons模擬構(gòu)造函數(shù)的功能 構(gòu)造序?qū)?表結(jié)構(gòu) 由序?qū)?gòu)造起來的復(fù)合數(shù)據(jù)對(duì)象 內(nèi)部基本過程 car和cdr模擬選擇函數(shù)的功能 實(shí)現(xiàn)對(duì)序?qū)Φ牟僮?Scheme語言數(shù)據(jù)抽象 第五章 11 內(nèi)容 1 數(shù)據(jù)抽象導(dǎo)引1 1序?qū)? 2有理數(shù)包的抽象屏障2 表結(jié)構(gòu)2 1序列與閉包性質(zhì)2 2表操作2 3表映射3 函數(shù)式語言高級(jí)抽象綜合實(shí)例 Scheme語言數(shù)據(jù)抽象 第五章 12 1 2有理數(shù)包的抽象屏障 使用有理數(shù)的程序 add rat sub rat make rat numer denom 抽象 抽象 1 2 Scheme語言數(shù)據(jù)抽象 第五章 13 內(nèi)容 1 數(shù)據(jù)抽象導(dǎo)引2 表結(jié)構(gòu)2 1序列與閉包性質(zhì)2 2表操作2 3表映射3 函數(shù)式語言高級(jí)抽象綜合實(shí)例 Scheme語言數(shù)據(jù)抽象 第五章 14 2 1序列與閉包性質(zhì) 序?qū)Φ?盒子和指針表示方式 例如 每個(gè)對(duì)象表示一個(gè)指向盒子的指針左邊的方盒放著序?qū)Φ腸ar右邊的方盒放著序?qū)Φ腸drcons的閉包性質(zhì)建立元素本身也是序?qū)Φ男驅(qū)?表結(jié)構(gòu) Scheme語言數(shù)據(jù)抽象 第五章 15 2 1序列與閉包性質(zhì) 序列 Sequences 表 list 由序?qū)?gòu)造出的一種數(shù)據(jù)結(jié)構(gòu) 表示一批數(shù)據(jù)對(duì)象的有序集合 Scheme語言數(shù)據(jù)抽象 第五章 16 內(nèi)容 1 數(shù)據(jù)抽象導(dǎo)引2 表結(jié)構(gòu)2 1序列與閉包性質(zhì)2 2表操作2 3表映射3 函數(shù)式語言高級(jí)抽象綜合實(shí)例 Scheme語言數(shù)據(jù)抽象 第五章 17 2 2表操作 例1 Scheme語言數(shù)據(jù)抽象 第五章 18 2 2表操作 例2 用迭代計(jì)算模型改寫下面的過程 Scheme語言數(shù)據(jù)抽象 第五章 19 2 2表操作 例3 實(shí)現(xiàn)兩個(gè)表的合并 Scheme語言數(shù)據(jù)抽象 第五章 20 內(nèi)容 1 數(shù)據(jù)抽象導(dǎo)引2 表結(jié)構(gòu)2 1序列與閉包性質(zhì)2 2表操作2 3表映射3 函數(shù)式語言高級(jí)抽象綜合實(shí)例 Scheme語言數(shù)據(jù)抽象 第五章 21 2 3表映射 表映射將某種變換應(yīng)用于一個(gè)表的所有元素 得到的結(jié)果構(gòu)成新的表 例如 將一個(gè)表中的元素按給定因子縮放 Scheme語言數(shù)據(jù)抽象 第五章 22 2 3表映射 問題 如何將表的映射這個(gè)一般性問題進(jìn)行抽象 解決方法 將其中的公共模式表述為一個(gè)高階過程map 研究Scheme標(biāo)準(zhǔn)提供的內(nèi)部map過程 Scheme語言數(shù)據(jù)抽象 第五章 23 2 3表映射 問題 如何將表的映射這個(gè)一般性問題進(jìn)行抽象 解決方法 將其中的公共模式表述為一個(gè)高階過程map 研究Scheme標(biāo)準(zhǔn)提供的內(nèi)部map過程 Scheme語言數(shù)據(jù)抽象 第五章 24 使用map改進(jìn)scale list Scheme語言數(shù)據(jù)抽象 第五章 25 內(nèi)容 1 數(shù)據(jù)抽象導(dǎo)引2 表結(jié)構(gòu)2 1序列與閉包性質(zhì)2 2表操作2 3表映射3 函數(shù)式語言高級(jí)抽象綜合實(shí)例 實(shí)例1 對(duì)于一棵樹 計(jì)算值為奇數(shù)的葉子的平方和 實(shí)例2 構(gòu)造所有為偶數(shù)的斐波那契數(shù)Fib k 的一個(gè)表 其中的k小于等于某個(gè)給定的整數(shù)n 實(shí)例1分析 枚舉一棵樹的樹葉 過濾它們 選出其中的奇數(shù) 對(duì)選出的每一個(gè)數(shù)求平方 從0開始 用 累積起得到的結(jié)果 Scheme語言數(shù)據(jù)抽象 第五章 28 3函數(shù)式語言高級(jí)抽象綜合實(shí)例 實(shí)例1和實(shí)例2的信號(hào)流流水線處理模式 enumerate treeleaves filter odd map square accumulate 0 enumerate integers map fib filter even accumulate cons 枚舉從0到n的整數(shù) 對(duì)每個(gè)整數(shù)計(jì)算相應(yīng)的斐波那契數(shù) 過濾它們選出其中的偶數(shù) 從空表開始用cons累積結(jié)果 枚舉一棵樹的樹葉 過濾它們選出其中的奇數(shù) 對(duì)選出的每一個(gè)數(shù)求平方 從0開始用 累積結(jié)果 Scheme語言數(shù)據(jù)抽象 第五章 29 習(xí)題 利用Scheme語言使用下面的標(biāo)準(zhǔn)組件構(gòu)造由前n 1個(gè)斐波那契奇數(shù)的平方形成的表 enumeratemapfilteraccumulate- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 函數(shù) 程序設(shè)計(jì)語言
鏈接地址:http://m.appdesigncorp.com/p-5330264.html