ideas on LISP
LISP是数学的变成语言,虽然我对LISP还不熟悉,因此,有关的这些想法可能是幼稚的。
- 结合JVM的类型系统,在LISP中可以直接使用JVM的对象类型。
- 提供更为友好的交互式功能,包括可以查看函数的源代码。(可以格式化,以便更好阅读),与Smalltalk相比,LISP代码就是数据。应该充分的发挥这样的一个优点,提供最好的交互式开发支持。
- 传统的LISP是面向过程的,OO应该来说具有更好的描述能力。(message object message-name parameters) 就完全符合要求。
- LISP IDE,尤其是提供格式化及括号匹配的功能。可以采用颜色的方式来标记块。可以帮助阅读源代码。
- sql支持
- xml支持。
- regexp支持
- 强类型支持。在编译阶段进行类型确定。以下面的SQL为例,r 在编译阶段可以编译成为一个类型信息。apply执行,prepare编译时执行。
- js { name:" wangzx", age:30 }
(object (name "wangzx") (age 30)) - js obj.name
(get obj name) // 如果obj是强类型的,get在编译时就会对错误的类型报错。
- [object message-name parameters]作为一种方言
- (define se SQLEngine)
- (define r ( message se '(select * from tblname where id = ,id) ) )
- r.name --> (get r name)
- r.method(args) ->(message r method args)
- (new 'java.util.ArrayList)
- 支持.,其中 a.b 等效于 (field a b), a.(b c) 等效于 (invoke a b c),用于支持面向对象的操作原语
- 增加 """ 字符常量 """的词法, """ strings """总是被编译成为一个如下的List:(string-literal, expr1, expr2),其中,string-literal是把原有的 [aaa] 等替换成为 [$n],且相应的表达式作为 expr 存在。
- @sql """select * from tblname where id = [id]""" 的形式来支持SQL
- @xml """
.... """ 的形式来支持XML。在literal中的内容完全由xml负责解释。
0 Comments:
张贴评论
<< Home