Lisp常用函数.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lisp常用函数

Lisp常用函数 Lisp 语法及变量皆不分大小写(case insensitive)。 NIL 空串行,相当于 () 。另外真伪值表示时, T 表真, NIL 表伪。只要是任何不是 NIL (空串行) 的值,真伪值都表示真。 QUOTE CODE: (QUOTE 参数) 将参数直接传回,不做任何评估动作。可用 (单引号)取代 SETQ, SETF, LET CODE: (SETQ 参数1 参数2) (SETF 参数1 参数2) (LET ((变量1名称 变量1的值) (变量2名称 变量2的值) ........ ) 变数1,2...的作用范围,既程序执行叙述 ) SETQ, SETF 将参数1的值连结至参数2。 LET 只有在作用范围内有效。 注: SetQ = set quote; SetF = set form 注: 全域变数习惯用两个 * 把变量名称包起来,例如 *globe-variable* CAR, CDR CODE: (CAR 串行参数) (CDR 串行参数) CAR 取得参数串行的第一个元素;CDR 取得扣掉第一个元素之后的新串行。 CONS CODE: (CONS 参数1 参数串行2) 把参数1 加到参数串行2 的第一个元素,产生出新的串行。 对任一串行 A 而言, (CONS (CAR A) (CDR A)) 即为 A 。 注:如果第二个参数不是串行,则会产生出点对,故少用。 APPEND CODE: (APPEND 参数串行1 参数串行2 ........ ) 合并若干参数串行,形成新的串行。 注:如果最后一个参数不是串行,也会形成尾巴是带点的串行,故少用。 LIST CODE: (LIST 参数1 ........ ) 将若干参数,当作是新串行的元素,形成新串行。 注: APPEND 除了最后一个之外的参数皆需为串行,而 LIST 不用。 NULL CODE: (NULL 参数) 判断参数是否为空串行(NIL)。 ATOM, LISTP, NUMBERP, ZEROP CODE: (ATOM 参数) (LISTP 参数) (NUMBERP 参数) (ZEROP 参数) 判断参数是否为 atom(原子), list(串行), number(数字), zero(0) , ZEROP 的参数必须为数字。 LENGTH CODE: (LENGTH 参数串行) 计算参数串行内的元素有几个。 REVERSE CODE: (REVERSE 参数串行) 将参数串行内的元素顺序反过来,切记,它只会反转第一层的元素。 EQUAL [Copy to clipboard] [ - ] CODE: (EQUAL 参数1 参数2) 比较两参数是否相等。 =, , , =, = CODE: (= 参数1 参数2) ( 参数1 参数2) ( 参数1 参数2) (= 参数1 参数2) (= 参数1 参数2) 功用正如你所想,传回值是 T 或是 NIL 。 NOT, AND, OR CODE: (NOT 参数) (AND 参数1 参数2 ...... ) (OR 参数1 参数2 ...... ) 功用正如你所想。AND 由左至右搜寻是否有 NIL ,碰到第一个满足的元素时,就停止搜寻,然后传回 NIL ,不然等搜寻到最后一个之后,最后一个参数就会被传回来啦。同理, OR 会搜寻第一个非 NIL 的元素,然后就停止搜寻,把那个元素当做传回值啦。 (to be continued... ) IF, COND CODE: (IF 测试条件 测试条件为真的执行叙述 测试条件为伪的执行叙述) (COND ((测试条件1) (待执行叙述1)) ((测试条件2) (待执行叙述2)) ...... ((测试条件n) (待执行叙述n)) ) 由测试条件1~测试条件n逐一检查,发现的第一个满足的测试条件k,就执行之后的待执行叙述k,执行之后,即终止测试,并跳出此 COND 叙述。 注:下面使用方法,类似一般语言的 if-then-else 使用方式 CODE: (COND ((测试条件1) (待执行叙述1)) ( T (待执行叙述2)) ) DEFUN CODE: (DEFUN 函数名称 (参数1 参数2 ... ) (执行叙述1) (执行叙述2) ......... ) 函数定义啦!如果有需要递归定义的话,请直接使用函数名称。 范例: CODE: (DEFUN factorial (N) (COND ((= N 0) 1) (T (* N (factorial (- N 1)))) ) ) 使用时候: (factorial 5) 传回结

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档