水木社区手机版
首页
|版面-函数式编程语言(FuncProgram)|
新版wap站已上线
返回
1/1
|
转到
主题:帮忙解释一下 Lisp 定义宏时的参数设定,谢谢!
5楼
|
littleSram
|
2021-01-01 08:11:01
|
展开
我认为好像还是吧
因为 (1 2) <=> (1 . (2)), 所以当形参是 (x . y) 的时候, x 为 1,y 为 (2)。
【 在 Dieken 的大作中提到: 】
: 那个语法不是 dotted pair,而是 Common Lisp 的 Lambda list 语法,点表示 &rest。
:
http://clhs.lisp.se/Body/03_dd.htm
:
--
FROM 114.249.25.*
6楼
|
littleSram
|
2021-01-01 08:16:08
|
展开
为啥要看common LISP呢
如果要学LISP的话,可以从简单的LISP方言学起来,比如scheme
【 在 snoopyzhao 的大作中提到: 】
: 有这么两个common lips 宏的定义:
: (defmacro destructuring-switch-bind (lambdalist expr . body)
: (...))
: ...................
--
FROM 114.249.25.*
9楼
|
littleSram
|
2021-01-01 09:25:07
|
展开
因为list是dot pair的简化表达
(1 2 3)= (1.(2.(3.())))
【 在 snoopyzhao 的大作中提到: 】
:
: 是这么个意思,感觉在形参中用这个就是为了简化的样子
--
FROM 114.249.25.*
12楼
|
littleSram
|
2021-01-01 10:25:29
|
展开
好吧,common LISP我没学过,其实我觉得如果只是了解的LISP的话,可以看看the little schemer 之类的书。
clojure我倒是买过书学过
【 在 Dieken 的大作中提到: 】
: 实用,而且是 Lisp 社区不可忽视的高峰,哈哈
:
--
修改:littleSram FROM 114.249.25.*
FROM 114.249.25.*
14楼
|
littleSram
|
2021-01-01 10:38:56
|
展开
是,LISP的宏让用户很难掌握,不直观
宏要先expand,然后eval
太烧脑了
但是我还是觉得LISP语言很伟大
简单的几条规则,有无限可能
【 在 Dieken 的大作中提到: 】
: Guy Steele 有个著名的演讲 Growing a language:
:
https://www.youtube.com/watch?v=_ahvzDzKdB0
: 语言设计者不应该去设计一个小语言,因为它太小了做大事会很累,也不应该去设计一个大语言,因为它太难一次设计对。 语言设计者应该去设计一种 pattern,能让语言顺利的被用户扩展,而且扩展的跟原始就这么设计似的,天衣无缝。
: ...................
--
FROM 114.249.25.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版