- 浏览: 16532 次
最新评论
Lisp的特性 (评论发不出,只好写一篇新的)
- 博客分类:
- 技术杂绘
Lisp的特性 (评论发不出,只好写一篇新的)
2011年02月18日
本来是给 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都能快速的吸收进来。
实际上, 后来很重要的 循环、OO、异常处理, 在Lisp中都是通过 macro 实现的。
因此,神马都是浮云, 不服Lisp的,可以自己写个 C++, Java 的预处理扩展, 自己实现各种特性, 只是Lisp将这种能力内置了,缩短了进化语言与普通开发之间的距离。人人都能变成语言的改进者。
发表评论
-
3D 游戏为什么选择OpenGL
2012-01-20 00:55 4963D 游戏为什么选择OpenGL 2011年03月28日 ... -
2010年度十大杰出IT博客
2012-01-20 00:55 7452010年度十大杰出IT博客 ... -
深入说明HDR技术
2012-01-20 00:55 514深入说明HDR技术 2011年0 ... -
Windows XP的小秘密 {10}
2012-01-19 08:45 742Windows XP的小秘密 {10} 2011年06月03 ... -
Redflag SP3 介绍
2012-01-19 08:45 910Redflag SP3 介绍 2010年07月05日 ... -
MAX三百问(珍藏版)上
2012-01-19 08:45 638MAX三百问(珍藏版)上 2011年06月13日 安装篇 ... -
linux HoN 运行不流畅解决
2012-01-19 08:44 752linux HoN 运行不流畅解决 2011年02月13日 ... -
qtopia-2.2.0移植到ARM上
2012-01-17 01:13 1265qtopia-2.2.0移植到ARM上 2011年03月24 ... -
国产手机小游戏应用
2012-01-17 01:13 1154国产手机小游戏应用 2011年03月08日 我的是金鹏, ... -
常见手机文件格式介绍,涵盖不同地域品牌不同操作系统的文件格式~(
2012-01-17 01:13 1023常见手机文件格式介绍, ... -
vista 系统问题
2012-01-17 01:13 738vista 系统问题 2010年06月04日 Vista ... -
蛾的本本,
2012-01-15 19:53 607蛾的本本, 2012年01月12日 电脑型号 戴尔 ... -
Do it
2012-01-15 19:53 693Do it 2011年12月10日 网站开发工程师 申请 ... -
汽车英语词汇 (2012了 大家抓紧学习)
2012-01-15 19:53 706汽车英语词汇 (2012了 大家抓紧学习) 2012年0 ... -
win7电脑配置
2012-01-15 19:53 681win7电脑配置 2011年12月30日 ------- ... -
答复: [译]Nginx & Comet:低延迟信息推送 | [译]Nginx & Comet:低延迟信息推送
2012-01-11 12:06 695答复: [译]Nginx & Comet:低延迟信息推 ... -
jpa级联操作详解3-级联删除(2)(cascadetype.remove)-sefcertyu-iteye技术网站
2012-01-11 12:06 1217jpa级联操作详解3-级联删除(2)(cascadetype. ... -
Spring 总结04
2012-01-11 12:06 605Spring 总结04 2011年07月01日 Ssh整 ... -
今天又有新的异常出现。。期待我的解决...-有则必不然;无则未必然!-iteye技术网站
2012-01-11 12:06 1069今天又有新的异常出现。。期待我的解决...-有则必不然;无则未 ... -
struts2 adtion 方法的校验(二)基于xml 配置-taink-iteye技术网站
2012-01-11 12:06 658struts2 adtion 方法的校验(二)基于xml 配置 ...
相关推荐
第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章...
LISP调用VB写的DLL教程,扩展lisp功能的教材。。。。。
第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使用...