Send As SMS

2005-04-27

学习函数式语言

最近,开始在学习一下函数式语言,主要是:
1. Lisp
2. Haskell
作为一个OO的程序员已经多年,思维模式基本上就是OO的了,在FunctionProgramming上,无论是概念上、思维模式上都会有很大的不同。 但实际上,在以前的很多工作中,FP的思想实际上在多个方面都有接触,最近在构思一种能够run在JVM上的FP语言,能够从更高的层面上解决问题,包括 在语言层面上对问题领域进行直接支持,而不是通过对象模型、API来进行扩展。这些问题领域包括:
1、对XML的支持和处理。当XML成为一种数据表示的标准之时,并且普遍应用到每一个角落之时(设置成为影响设计的一个关键因素),在语言中提供对 XML的支持是非常必要的。Ecmascript4Xml(E4X,已经在rhino1.6种实现),XJ(alphaworks.ibm.com), Comega等语言都希望XML成为语言的一等公民。
2、SQL支持。当应用是面向Database时,一种模式是ORmapping,包括EJB/Hibernate等等的框架度是在这个框架下进行发展 的。别扭的就是需要引入一个OQL。而EmbedSQL/sqlj/Comega等语言的模式则是试图在语言的层面上对SQL进行直接的支持。
在OO世界中,如果要匹配一个问题领域,标准的做法就是对其进行对象建模,提供一个对象化的API。这种模式的一个最大的问题是这种映射在某个层面上会导 致不一致性,就像XML的天然层次关系,反映到DOM中就复杂许多。SQL中的查询处理能力,无法简单的映射成为OO操作。在某个意义上让语言具有更强的 的扩展能力,从而具有更强的表达能力。

0 Comments:

张贴评论

<< Home