2009年5月6日 : 函数式语言 动态语言 Java脚本API

  • 三种语言类型: 1.命令式  2.函数式  3.逻辑式
  • “命令式的语言相信很多人都学了一把了,C,C++,Java,C#,我就较系统的学了这一把,其他浅尝辄止的语言就不提了。函数式以前摸过Scheme后 就再也没派上用场,逻辑式似乎只有一种Prolog,我记得还专门买过清华的一本烂书《人工智能(AI)编程语言(面向对象语言)》,全部翻译的是 Visual Prolog官网的资料,词不达意还残缺不全,顺序混乱,而且那个Visual Prolog个人版每次编译都跳出烦人的对话框,界面丑陋,令人失望。目前函数式编程理论成熟,逻辑式编程理论似乎有缺陷,而且工业上那一吨的专家系统都 是Common Lisp写的(注意,我可没有提Scheme),而且Common Lisp在人工智能领域外也大有作为,有很多成功的商业案例,Prolog就似乎只能在人工智能这一角混了。”(引用http://hi.baidu.com/soulmachine/blog/item/60c477270b023802908f9dc8.html)
  • 最早的函数式语言当然是Lisp,现在有两个分支:Common lisp 和Scheme。Common lisp 是一个庞大的语言,支持多种编程范式,Scheme是Common lisp的子集,二者都是ANSI标准。Scheme 由于语言核心很小,多用在教育领域,Common Lisp多用来写专家系统,也可以构造大型软件。
    最纯的函数式语言是Haskell,完全没有副作用,有一个Hakell98标准,但还不是ANSI或ISO标准,算是一个社区标准吧。
    ML也是一种跟Lisp差不多老的语言,现在有Standard ML,Caml和微软的F#三个常见变种。
    Lisp 和Scheme 在tiobe的排名还不错,又老又壮,ML 和Haskell比 Lisp家族都要年轻,用的人明显少了很多,社区也比较小。erlang和ocaml排名都很后。(引用http://hi.baidu.com/soulmachine/blog/item/60c477270b023802908f9dc8.html)
  • Java Scripting API: 框架类似JDBC,可以利用统一的接口对不同的脚本语言的调用。
  • Java Scripting API: 主要类:ScriptEngineManager ScriptEngine (全部都是工厂模式了,这世道)使用SciptEngine的eval方法来调用脚本。
  • Java Scripting API: ScriptEngine可以维持应用程序组件的状态,即上文中执行了的eval方法中定义了一个脚本函数,在下文中的eval方法中可以调用。事实上,Java 脚本 API 并不要求脚本引擎提供这一特性。本文中所使用的 JavaScript、Groovy 和 JRuby 脚本引擎确实在 eval() 调用之间维持了这些状态。
  • Java Scripting API:允许在脚本语言中调用Java对象。使用ScrpitEngine的put方法:put(name,object)将Java对象放入到脚本上下文中。
  • Java Scripting API:加入了脚本语言的Java将变得更加灵活,想像逻辑层,规则层使用脚本语言编写,然后嵌入到Java中的快感吧。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值