CLTL2中关于Lambda-EXpress参数关键字的一些例子
2007-07-04 14:06
507 查看
(1) Examples of &optional and &rest parameters:
(2) Examples of &key parameters:
(3) Examples of mixtures:
((lambda (a b) (+ a (* b 3))) 4 5) => 19 ((lambda (a &optional (b 2)) (+ a (* b 3))) 4 5) => 19 ((lambda (a &optional (b 2)) (+ a (* b 3))) 4) => 10 ((lambda (&optional (a 2 b) (c 3 d) &rest x) (list a b c d x))) => (2 nil 3 nil nil) ((lambda (&optional (a 2 b) (c 3 d) &rest x) (list a b c d x)) 6) => (6 t 3 nil nil) ((lambda (&optional (a 2 b) (c 3 d) &rest x) (list a b c d x)) 6 3) => (6 t 3 t nil) ((lambda (&optional (a 2 b) (c 3 d) &rest x) (list a b c d x)) 6 3 8) => (6 t 3 t (8)) ((lambda (&optional (a 2 b) (c 3 d) &rest x) (list a b c d x)) 6 3 8 9 10 11) => (6 t 3 t (8 9 10 11))
(2) Examples of &key parameters:
((lambda (a b &key c d) (list a b c d)) 1 2) => (1 2 nil nil) ((lambda (a b &key c d) (list a b c d)) 1 2 :c 6) => (1 2 6 nil) ((lambda (a b &key c d) (list a b c d)) 1 2 :d 8) => (1 2 nil 8) ((lambda (a b &key c d) (list a b c d)) 1 2 :c 6 :d 8) => (1 2 6 8) ((lambda (a b &key c d) (list a b c d)) 1 2 :d 8 :c 6) => (1 2 6 8) ((lambda (a b &key c d) (list a b c d)) :a 1 :d 8 :c 6) => (:a 1 6 8) ((lambda (a b &key c d) (list a b c d)) :a :b :c :d) => (:a :b :d nil)
(3) Examples of mixtures:
((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1) => (1 3 nil 1 ())
((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1 2) => (1 2 nil 1 ()) ((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) :c 7) => (:c 7 nil :c ()) ((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1 6 :c 7) => (1 6 7 1 (:c 7)) ((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1 6 :d 8) => (1 6 nil 8 (:d 8)) ((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1 6 :d 8 :c 9 :d 10) => (1 6 9 8 (:d 8 :c 9 :d 10))
相关文章推荐
- CLTL2关于LISP Lambda-EXpress参数关键字的一些例子
- 关于上个Flex-Jsp-DB例子中Flex和Jsp传递中文参数问题的解决方法!(Tomcat服务器)
- 关于Xcode的Other Linker Flags中的一些参数
- 关于存储过程的ADO调用的一些心得(输出参数,返回值)
- 关于static关键字的一些学习
- 关于listen的第二个参数backlog的一些问答见解
- 关于spark一些参数的问题
- 关于python 的函数默认参数与关键字keyword的想法
- 英文简历中关于项目经验的一些有用的例子
- 关于使用PRO*C编程的一些简单说明和例子
- 关于构建浅层神经网络的一些理解(以MNIST为例子)
- 黑马程序员-关于类的继承问题与final关键字的一些感悟
- Spring MVC一些常见注解的使用(三)关于提交参数的一些注解待续
- 关于指针和数组对申请内存malloc和作为参数传递的一些问题
- 关于使用PRO*C编程的一些简单说明和例子
- 关于程序自身的一些参数如何获取
- 关于二级指针的使用测试小例子,仅供测试--参数传递的时候用指针最好,因为压栈的时候指针,只是压入一个地址的值,最多4个字节(32位机上),提供的3个测试例子,基于VC6.0的环境。
- 关于使用PRO*C编程的一些简单说明和例子
- 关于java关键字synchronized的一些心得体会
- 关于 Data Guard 环境配置的一些初始化参数