Re: [新手发问]Lisp

楼主: beatitude (...)   2013-01-09 23:54:03
※ 引述《AngelLeliel (羽泽祐二)》之铭言:
: 最近因为看了"骇客与画家"这本书对Lisp产生兴趣
: 因此找了相关的资料来看
: 一开始我对Lisp的印象是一个历史悠久的语言
: 并没有花太多心思在这上面
: 但是稍微深入了解以后 我发现Lisp真的是非常Powerful
: 就我个人的认知
: Lisp最强大的一个功能便是Macro
: 这让我不禁想问
: 这么强大的工具为什么鲜见于其他直译式语言之中?
: 是程式语言架构造成的吗?
: 如果想要在其他语言(像是Perl,Ruby)
: 当中引入这个功能会有什么困难的地方?
: 据我所知Perl6会把Macros加进来的样子...
: 也许叙述的不是很有条理
: 还请各位先进加以指导
回一篇古老的文
在小弟的认知里,由于 Lisp code 本身是由 List 组成的树状结构,
所以 Lisp 宏可以在编译期将 Lisp code 当作资料结构进行处理。
由于 Lisp 宏设计是对使用者开放的,
所以原则上 user 可以创造出任意的语法控制结构 (if, def, defn, defmacro...etc)
可以说是想要什么都做得出来
其它语言因为语法规则较为复杂,
所以宏 (ex: C macro) 往往仅能把 code 作为纯文本处理,
如此一来要把一个可见的 code pattern 抽象化出来就比较困难,
我想这是 Paul Graham 声称 Lisp is power 的原因
如果有说的不对的地方还请各位指教,thanks!

Links booklink

Contact Us: admin [ a t ] ucptt.com