- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LISP程式语言
第十一章 LISP 程式語言 陳維魁 博士 wkchen@.tw 儒林圖書公司 大綱 簡介 劍橋波蘭式 常見的函數 自定函式 控制結構 精選習題 簡介 LISP(LISt Processing language)發展於1950年代末期 主要是應用在人工智慧(artificial intelligence)的領域,又稱為人工智慧的低階語言 LISP語言是以解譯器(interpreter)來處理其程式 基本的資料結構是S-運算式(S-expression),其中S-運算式又可區分為串列(list)與原子(atom)二種 採垃圾收集法(garbage collection)管理記憶體 垃圾收集法指的是系統會主動地收集程式中不再使用的記憶體空間 優點是減輕了程式設計師的負擔 缺點則是每次系統收集不再使用的記憶體往往費時過長,而且不知何時會開始進行收集的動作 函數式程式語言 劍橋波蘭式 LISP運算式的表示法採劍橋波蘭式(Cambridge-polish form),即前置式加上括號 常見的函數 quote 對引數不作任何的處理,直接傳回引數的內容 setq 指定變數的值 set 指定變數的值 算術函數: 加法:plus (+) 減法:difference (-) 除法:quotient (/) 乘法:times (*) 常見的函數 car (1)作用:傳回引數的第一個元素 (2)限制:引數必須是串列(list)且引數僅有一個 (3)實例 (car ′(Pascal Prolog PL/1))=Pascal 【注意:傳回的結果可能是原子或串列】 cdr (1)作用:除去引數的第一個元素後,傳回剩下的串列 (2)限制:引數必須是串列且引數僅有一個。 (3)實例 (cdr ′(Pascal Prolog PL/1))=(Prolog PL/1) 【注意:傳回的結果是一串列】 常見的函數 rplaca 將第一個引數的car以第二個引數的car替代 rplacd 將第一個引數的cdr以第二個引數的cdr替代 append 用法為(append a1 a2 ... an)=(b1 b2 ... bn)其中ai, 1 ? i ? n,為串列(list),而bi, 1 ? i ? n,則為ai去掉括號後之結果 cons 對二個參數作求值的動作,結果是把第一個引數加入第二個引數中以形成新串列 常見的函數 length 計算參數的長度 (length (A B C))=3 reverse 將參數反轉 自定函式 LISP語言提供了使用者以“defun”來自行定義函式。 自行定義的函式,結構包含三個部分: (1) 函式名稱 (2) 型式參數串列 (3) 程式段 (defun 函式名稱(型式參數串列) ( 程式段 )) defun提供的功能是將上述(1),(2),(3)連接在一起提供給使用者使用,並不會對(1),(2),(3)中之任何一者作求值的動作 述句 LISP語言測試條件的結構稱為述句(predicate) LISP語言常見的述句 atom:判斷參數是否為原子(atom) listp:判斷參數是否為串列(list) equal (e1 e2):比較e1與e2 member (e1 e2): 限制:e2必須是串列(list)。 作用:檢查e1是否為e2的一部分。member函數具有二個引數。其中第二個引數被限定為必須是個串列(list)。member函數的功能是檢查第二個引數中是否出現第一個引數。若結果為真,則傳回在第二個引數中第一個引數出現的位置以後的部份,若結果為假,則傳回nil 述句 LISP語言常見的述句 plusp:判斷參數的值是否大於0 minusp:判斷參數的值是否小於0 zerop:判斷參數的值是否為0 numberp: 判斷參數是否為數值 null:判斷參數是否為nil greaterp e1 e2 若e1e2,則t 若e1=e2,則nil 述句 LISP語言常見的述句 lessp e1 e2: 若e1e2,則t 若e1=e2,則nil and e1 e2 ... en:若e1、e2、...、en全為true,則t,否則nil or e1 e2 ... en:e1、e2、...、en中若有一者為true,則t,否則nil not:若參數值為nil則結果為t,否則為nil LISP 語言的條件式 LISP語言的條件式即為cond結構 cond結構可以處理任意數目的參數,這些參數即稱為cond子句 每個cond子句由一連串的S運算式所組成 cond子句由二個部份所組成 第一個部份是要測試的條件 第二個部份則是測試的條件成立時必須執行之
您可能关注的文档
- 2017年第12期-江苏金汇人律师事务所.DOC
- 2017年高考北京卷理综试题解析-精品学习网.DOC
- 20世纪初期中日贸易下手工棉纺织业之境遇-厦门大学学术典藏库.PDF
- 2017-2020年-太原政府.DOC
- 300MW机组锅炉防结焦降低NOx燃烧器技术优化-中国电机工程学会.PDF
- 35kV及以下交联电缆局放耐压及故障定位试验系统-上海蓝波.DOC
- 87学年学测化学部分.DOC
- 94上四年级乡土语.DOC
- 92年学测化学.DOC
- 94学年--光与颜色.DOC
- 教科版(2017秋)科学二年级上册2.6 做一顶帽子 教学设计.docx
- 河北高频考点专训四 质量守恒定律的应用教学设计---2024-2025学年九年级化学人教版(2024)上册.docx
- 大单元教学【核心素养目标】6.3 24时计时法教学设计 人教版三年级下册.docx
- 河南省商城县李集中学2023-2024学年下学期九年级历史中考模拟八(讲评教学设计).docx
- 第18章 第25课时 正方形的性质2023-2024学年八年级下册数学课时分层作业教学设计( 人教版).docx
- Module 8 模块测试 教学设计 2024-2025学年英语外研版八年级上册.docx
- 2024-2025学年小学数学五年级下册浙教版教学设计合集.docx
- 2024-2025学年小学劳动四年级下册人民版《劳动》(2022)教学设计合集.docx
- 2024-2025学年小学数学三年级上册冀教版(2024)教学设计合集.docx
- 2024-2025学年高中生物学必修1《分子与细胞》人教版教学设计合集.docx
文档评论(0)