各种Lisp系语言大检阅
主要特色:
CommonLISP : lisp系集大成者, 工业化强度的大型语言. 拥有理论上最高的表达力, 非常复杂, 学习难度极大. 喜欢的人捧到天上, 觉得它是一切语言的终点, 不喜欢的人恶心死, 觉得各种混乱各种冗余, 缺失美感. (工业化语言)
Scheme: 一种以静态作用域和强制严格尾递归实现为特色, 遵从的理念是编程语言发展不该越来越复杂,不断堆叠新的功能和特色, 而是应该不断消除缺陷和限制, 以使得不再需要添加功能和特性就能达到目的. 追求数学上的美感, 跟CommonLISP在很多理念上完全相反, 相对简单,但是极端灵活. 由于缺少实用的库而长期沦为教学语言, 很少用于实用. (算法语言)
Clojure: 一种新兴的lisp, 起于jvm平台, 现在已经移植到了.Net 和 Node.js 因为根植于几个非常流行的平台,使得其具有得天独厚的优势, 市场占有率节节上升, 直追前两大lisp. 语法上充分利用了多种括号,使得括号总数减少了.同时追求工业化强度和数学美感之间的平衡. 启动时间过长是最大的缺点.
newLISP: 剑走偏锋的独特lisp, 有大量创新内容, 同时保留一些在lisp系进化过程中被抛弃的设计(可能是过于大胆或者过于灵活副作用太大等原因),这些魔鬼设计的组合形成了一个强大独特的动态脚本语言系统.最大特色是语言好小,整个只有200k.
AutoLISP:曾经作为AutoCAD软件的内置脚本而成为最多人使用的lisp,但是语法古老, 缺陷很多,性能低下,代码丑陋, 世人关于lisp的种种不实的评论很多是由它而来. 现在已经被淘汰, 新版本AutoCAD用CommonLISP.
EmacsLISP: Emacs编辑器的扩展脚本语言, 现在依然存活的最古老的lisp语法之一, 因为编辑器而为世人所知. 但是跟AutoLISP一样,是一种古老的落后的lisp语言.
各个有影响力的分支:
Scheme的分支:
Racket: 以Scheme为基础, 增加了大量实用的语法和库, 使其成为一种更实用的语言而不仅仅是教学语言, 完全兼容低版本的scheme, 大部分兼容高版本的scheme.
IronScheme: .Net上的Scheme实现, 在R6RS标准的95%之上, 增加了跟.Net库的互操作和集成, 使得其成为一种实用的嵌入.NET程序的灵活脚本语言.在ngen的帮助上, 它成为启动最快的.Net lisp.
Clojure的分支:
ClojureCLR: .NET的DLR上的Clojure,并不是对jvm版的翻译,而是根据.Net而定制的实现.
ClojureScript: 把Clojure编译为javascript以运行在浏览器或Node.js. 是clpjure的子集
社区和文档:
CommonLISP 社区对新人很不友好, 充满歧视. 教程很多, 但是很古老,文档多但是都过于庞大, 让人望而生畏.
EmacsLISP 社区教程丰富细致
Scheme社区像大学, 文档都像论文一样
Clojure社区非常友好, 同时文档书籍以很快的速度增加着
Racket文档庞杂,社区没什么人, 并且设计者很有闭门造车的意味
newLISP社区在没落,文档不完整, 但整体方向没问题.
流行程度:
CommonLISP (30几位)
Scheme (40几位)
Clojure (50-100位)
其他(不在前100)
各种Lisp系语言大检阅的更多相关文章
- BMP图像直方图均衡算法(C语言大作业)
万丈高楼平地起 C语言大作业 一.学习笔记篇 1.学习MarkDown MarkDown注重写作本身,而非花俏的界面 编辑器:vscode 插件:Markdown,Markdown Preview 2 ...
- C语言大总结
C语言大总结 一. C语言基本常识 1.语言由函数组成 2.main是程序入口 3.C语言中不能出现中文或中文字符 (凝视和字符串除外) keyword : C语言提供表示特殊含义的单词 特点 : 1 ...
- Atitit.dart语言的特性 编译时js语言大总结
Atitit.dart语言的特性 编译时js语言大总结 1. 原型环境1 1.1. Dart可以编译js3 2. 第二个期待的理由是Dart的语言特性,没有什么特别特性好像,类似java c#一小时 ...
- Java系的大网站架构-LinkedIn和淘宝
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- R语言︱大数据集下运行内存管理
在实操时出现以下的问题: Error: cannot allocate vector of size 2.9GB 大神指导(http://bbs.pinggu.org/thread-3682816-1 ...
- OC语言大总结(上)
根据OC学习的知识点,总结了一下,希望能帮到大家! 作者:韩俊强 未经允许,请勿转载! 关注博主:http://weibo.com/hanjunqiang 第一节类于对象 类与对象http:// ...
- #006 C语言大作业学生管理系统第三天
还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...
- Python、Lua和Ruby比较——脚本语言大P.K.
译者按:Python.lua和ruby在C/C++是日渐式微的情况下,在java/.net的围歼中努力抗争的三个当红小生.在Tom Gutschmidt的著作<Game Programmng w ...
- Go语言大神亲述:历七劫方可成为程序员!
“历劫1”:你坚信你可以用Go来做面向对象编程? 在经历了一次Go应用之旅之后,你可能就会开始思考:“怎么样才能让这种语言更像面向对象的编程语言?”因为你已经习惯了这种编程,你想要制作健壮的代码.想要 ...
随机推荐
- [bzoj2002][Hnoi2010]Bounce弹飞绵羊——分块
Brief description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装 ...
- python configparse
# 参考:https://www.cnblogs.com/lily1989/p/8401005.html # https://blog.csdn.net/willhuo/article/details ...
- go开发
我开发中一直用这一段 //for debuggingfunc printPretty(v interface{}, mark string) (err error) { fmt.Printf(&quo ...
- 原型和JS内置对象
原型 1.定义 每一个对象都有原型 原型仍然是一个对象 模拟实现面向对象的继承性 2.原型链 对象的原型还有原型 对象除了可以使用自有属性还可以继承原型上的属性 3.获取原型 对象.__proto__ ...
- python--requests_html
这个模块从名字上也能看出来,是专门用来解析html的,这个和requests的作者是同一人,非常牛逼的一位大佬. 大致读了一下源码,总共一个py文件(但是引用了其他的模块),加上注释总共才700多行, ...
- python排序sorted与sort比较
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. sorted(iterable,key=None,revers ...
- [ Centos 7 iscsi搭建 及 1台客户端同时挂载多台iscsi服务端问题 ]
一.什么是iscsi iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千 ...
- 使用DRF视图集时自定义action方法
在我们用DRF视图集完成了查找全部部门,创建一个新的部门,查找一个部门,修改一个部门,删除一个部门的功能后,views.py的代码是这样子的: class DepartmentViewSet(Mode ...
- python特有的协程
#转载请联系 什么是协程呢? 线程包含在进程里面,协程包含在线程里面.协程也是和进程.线程一样,可以实现多任务.协程的切换开销比线程更小,不需要保存和恢复线程的状态.最通俗易懂的说法就是,协程是就是一 ...
- Delphi New,Getmem,ReallocMem联系与区别
来自:http://www.cnblogs.com/jsrgren/archive/2011/10/31/2270353.html ---------------------------------- ...