本来是给 Lisp的给力特性
这篇文章的评论,奈何csdn的blog上无法提交,只好新发一篇:
目前我不知道到底与C++的宏(其实也是一样的编译期展开),还有比普通函数的优势在哪。(原谅我才学Lisp没有几天)
====
Lisp 的Macro 与 C++中 Macro 的区别: (原谅我N多年没用过C++) Lisp的语言本身就是 S表达式, Lisp 的Macro直接操作列表,可以应用全部的Lisp语法工具来将输入列表转换成目标的程序列表。
相比较来说 C++的Macro更多只是替换。表达能力上不可同日而语。
Lisp的Macro 可以实现惰性计算,可以实现自己的语法结构, 传递给Macro的参数可以自己控制其求值次数(0次或多次) ,这样就可以自己实现 if , loop 等语法结构。
====
Lisp 与 Haskell 并非同源, Haskell 来自 Miranda , 借鉴了 ML 中的类型推导。 Python的 list comperhension 是来自 haskell, 在 CL中有一个类似的 incf-cl 库可以实现 list comperhension 。 这就是Lisp的强大之处, 它根本就没语法,写出来的就是代码树, Macro就是一个代码生成器。 所以有什么新的语言特性,Lisp都能快速的吸收进来。
Common Lisp 中通过incf-cl 库实现的 list comprehension:
实际上, 后来很重要的 循环、OO、异常处理, 在Lisp中都是通过 macro 实现的。
因此,神马都是浮云, 不服Lisp的,可以自己写个 C++, Java 的预处理扩展, 自己实现各种特性, 只是Lisp将这种能力内置了,缩短了进化语言与普通开发之间的距离。人人都能变成语言的改进者。
分享到:
相关推荐
LISP调用VB写的DLL教程,扩展lisp功能的教材。。。。。
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...
一、AutOLISP是何方神圣 ★AutoLISP是AutoCAD的最佳搭档! ★AutoLISP内含于AutoCAD软件内,不用另外花钱买! ★AutoLISP是强化AutoCAD最好、最直接的“程序语言”! ★AutoLISP易学、易用,即使不会程序设计的...
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...
一篇CommonLisp中文入门文章Common LISP Hints 从Ubuntu论坛上看到的, 觉着不错就给打包成了CHM 如果看不到请: 右键=>属性=>解除锁定
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...
autolisp教程,供大家学习,来之不易
Autolisp编程学习资料,铁道出版社,非常好的书籍。
AUTOLISP&DCL基础篇是AUTO LISP很好的教程
这是LISP和Common LISP编程的上一页,我们正在处理中,将那里的所有书籍都转换为新页面。 请再次检查此页面!!!
现在Visual LISP(VLISP)增加了许多重要功能,代表着新一代AutoCAD LISP语言。VLISP对语言进行了扩展,可以通过Microsoft ActiveX Automation接口与对象交互。同时,通过实现反应器函数,还扩展了AutoLISP响应事件的...
AutoLisp&DCL;基础篇随书光盘代码AutoLisp&DCL;基础篇随书光盘代码
lisp 调用VLX函数模块,将编译后的VLX文件纳入到自己的函数中
二十年来,开发新编程语言的一个流行的秘决是,取C语言的计算模式,逐渐地往上加Lisp模式的特性,例如运行时类型和无用单元收集. 在这篇文章中我尽可能用最简单的术语来解释约翰麦卡锡所做的发现. 关键是我们不仅要学习...
学好 AutoLISP 的关键、 基本结构与语法:1. AutoLISP 程序语言的特质 A.语法简单B.功能函数强大C.撰写的环境不挑剃D.直译式程序『即写即测、即测即用』E.横跨 AutoCAD 各作业平台悠然自得 (注:以上五点读者可以参考...
一. AutoLISP 是何方神圣? AutoLISP是AutoCAD的最佳拍檔! AutoLISP内含于AutoCAD软件内,不用另外花钱买! AutoLISP是强化AutoCAD最好、最直接的『程序语言』! AutoLISP易学、易用,即使不会程序设计的AutoCAD使用...