函數式程序設計語言.ppt
《函數式程序設計語言.ppt》由會員分享,可在線閱讀,更多相關《函數式程序設計語言.ppt(29頁珍藏版)》請在裝配圖網上搜索。
2020年1月26日星期日 程序設計語言范型ProgrammingLanguagesParadigms 教師 張榮華計算機科學與技術學院華北電力大學 函數式程序設計語言 Scheme語言數據抽象 第二部分 第五章 Scheme語言數據抽象 第五章 3 回顧 任何強有力的程序設計語言都必須能表述基本的數據和過程 還需要提供對數據和過程進行組合和抽象的方法 摘自 計算機程序的構造和解釋 控制抽象 表達式層次 語句層次 程序單元層次 數據抽象 本章研究內容 Scheme語言數據抽象 第五章 4 回顧 Scheme語言控制抽象 第五章第二部分 將一個過程的使用方式 與該過程究竟如何通過更基本的過程實現的具體細節(jié)相互分離的一種技術 基本數據 數 基本過程 算數運算 用復合 條件 參數將過程組合起來形成復合過程 通過define lambda做過程抽象 過程的計算模式 遞歸計算和迭代計算過程 高階過程Scheme語言數據抽象 第五章第三部分 討論程序設計語言提供的將數據對象組合起來形成復合數據的方式 Scheme語言數據抽象 第五章 5 內容 1 數據抽象導引1 1序對1 2有理數包的抽象屏障2 表結構2 1序列與閉包性質2 2表操作2 3表映射3 函數式語言高級抽象綜合實例 Scheme語言數據抽象 第五章 6 1 數據抽象導引 數據抽象將程序中處理數據對象的表示的部分 與處理數據對象的使用的部分相互隔離起來的一種技術 例如 考慮線性組合 ax by define linear combinationabxy ax by define linear combinationabxy add mulax mulby 數據抽象的關鍵 構造函數 粘合劑 選擇函數 分離劑 Scheme語言數據抽象 第五章 7 實例 有理數的算術運算 假定 存在一種方法可以從分子和分母構造出有理數 存在一種方法可以從已經存在的有理數中分離它的分子和分母 make rat numer denom 從分子n和分母d構造有理數并返回 返回有理數x的分母 返回有理數x的分子 構造函數 選擇函數 Scheme語言數據抽象 第五章 8 實例 有理數的算術運算 例如 實現兩個有理數相加 Scheme語言數據抽象 第五章 9 內容 1 數據抽象導引1 1序對1 2有理數包的抽象屏障2 表結構2 1序列與閉包性質2 2表操作2 3表映射3 函數式語言高級抽象綜合實例 Scheme語言數據抽象 第五章 10 1 1序對 Scheme語言提供的構造函數和選擇函數 內部的基本過程 cons模擬構造函數的功能 構造序對 表結構 由序對構造起來的復合數據對象 內部基本過程 car和cdr模擬選擇函數的功能 實現對序對的操作 Scheme語言數據抽象 第五章 11 內容 1 數據抽象導引1 1序對1 2有理數包的抽象屏障2 表結構2 1序列與閉包性質2 2表操作2 3表映射3 函數式語言高級抽象綜合實例 Scheme語言數據抽象 第五章 12 1 2有理數包的抽象屏障 使用有理數的程序 add rat sub rat make rat numer denom 抽象 抽象 1 2 Scheme語言數據抽象 第五章 13 內容 1 數據抽象導引2 表結構2 1序列與閉包性質2 2表操作2 3表映射3 函數式語言高級抽象綜合實例 Scheme語言數據抽象 第五章 14 2 1序列與閉包性質 序對的 盒子和指針表示方式 例如 每個對象表示一個指向盒子的指針左邊的方盒放著序對的car右邊的方盒放著序對的cdrcons的閉包性質建立元素本身也是序對的序對 表結構 Scheme語言數據抽象 第五章 15 2 1序列與閉包性質 序列 Sequences 表 list 由序對構造出的一種數據結構 表示一批數據對象的有序集合 Scheme語言數據抽象 第五章 16 內容 1 數據抽象導引2 表結構2 1序列與閉包性質2 2表操作2 3表映射3 函數式語言高級抽象綜合實例 Scheme語言數據抽象 第五章 17 2 2表操作 例1 Scheme語言數據抽象 第五章 18 2 2表操作 例2 用迭代計算模型改寫下面的過程 Scheme語言數據抽象 第五章 19 2 2表操作 例3 實現兩個表的合并 Scheme語言數據抽象 第五章 20 內容 1 數據抽象導引2 表結構2 1序列與閉包性質2 2表操作2 3表映射3 函數式語言高級抽象綜合實例 Scheme語言數據抽象 第五章 21 2 3表映射 表映射將某種變換應用于一個表的所有元素 得到的結果構成新的表 例如 將一個表中的元素按給定因子縮放 Scheme語言數據抽象 第五章 22 2 3表映射 問題 如何將表的映射這個一般性問題進行抽象 解決方法 將其中的公共模式表述為一個高階過程map 研究Scheme標準提供的內部map過程 Scheme語言數據抽象 第五章 23 2 3表映射 問題 如何將表的映射這個一般性問題進行抽象 解決方法 將其中的公共模式表述為一個高階過程map 研究Scheme標準提供的內部map過程 Scheme語言數據抽象 第五章 24 使用map改進scale list Scheme語言數據抽象 第五章 25 內容 1 數據抽象導引2 表結構2 1序列與閉包性質2 2表操作2 3表映射3 函數式語言高級抽象綜合實例 實例1 對于一棵樹 計算值為奇數的葉子的平方和 實例2 構造所有為偶數的斐波那契數Fib k 的一個表 其中的k小于等于某個給定的整數n 實例1分析 枚舉一棵樹的樹葉 過濾它們 選出其中的奇數 對選出的每一個數求平方 從0開始 用 累積起得到的結果 Scheme語言數據抽象 第五章 28 3函數式語言高級抽象綜合實例 實例1和實例2的信號流流水線處理模式 enumerate treeleaves filter odd map square accumulate 0 enumerate integers map fib filter even accumulate cons 枚舉從0到n的整數 對每個整數計算相應的斐波那契數 過濾它們選出其中的偶數 從空表開始用cons累積結果 枚舉一棵樹的樹葉 過濾它們選出其中的奇數 對選出的每一個數求平方 從0開始用 累積結果 Scheme語言數據抽象 第五章 29 習題 利用Scheme語言使用下面的標準組件構造由前n 1個斐波那契奇數的平方形成的表 enumeratemapfilteraccumulate- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 函數 程序設計語言
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.szxfmmzy.com/p-5330264.html