WEB开发网
开发学院网页设计JavaScript 函数式编程(javascirpt) 阅读

函数式编程(javascirpt)

 2010-09-14 13:44:24 来源:WEB开发网   
核心提示: 如果上边的几个都可以完全理解,那么常识看看最下面的这个计算一个函数的平方根的函数sqrt(x),函数式编程(javascirpt)(5),你会发现这个函数很有意思,其中的那个匿名函数最有意思,看看效果,同时体会一下函数式编程的优美,我写了个测试函数:function funcsTester

如果上边的几个都可以完全理解,那么常识看看最下面的这个计算一个函数的平方根的函数sqrt(x),你会发现这个函数很有意思,其中的那个匿名函数最有意思,我写了个测试函数:

function funcsTester(){
  //计算两个数的平方和的匿名函数
    var y = (function(x, y){ return add( expt(x, 2), expt(y, 2) ); })(3, 4);
    print(y);
    print(halfIntervalMethod(sin, 2.0, 4.0));
    print(halfIntervalMethod(function(x){return expt(x, 3) - mul(2, x) - 3;}, 1.0, 2.0));//x^3-2x-3
    print(fixedPoint(cos, 1.0));//cos的不动点
    print(fixedPoint(function(x){return add( sin(x), cos(x)); }, 1.0));
    print(sqrt(100));
}

运行结果如下:

js> funcsTester()
25
3.14111328125
1.89306640625
0.7390822985224024
1.2587315962971173
10
js> 

好了,关于函数式编程就大概介绍到这里,下面简单说说这个rhino包

关于Rhino

rhino是一个纯java的javascript引擎的实现,下载之后,将js.jar加入classpath,然后在命令行中输入:

java org.mozilla.javascript.tools.shell.Main

即可启动,可以使用load(path/of/script)来加载,加载完成后即可使用脚本中定义的函数,非常方便,当然DOM中的一切是不能用的,比如alert什么的,但是javascript不只是用来脚本化WEB页面的。可以使用print进行打印,使用quit()退出等,下面做一个关于rhino的例子:

user = {
    name:"abruzzi",
    password:"123456",
    address:{
        zip:"612345",
        street:"west HuangQuan road"   
    },
    getName: function(){return this.name;},
    getPassword: function(){return this.password;},
    getAddress: function(){ return this.address.zip+"n"+this.address.street;}
}

$ java org.mozilla.javascript.tools.shell.Main
Rhino 1.7 release 2 2009 03 22
js> load('~/development/myLib/HighOrderFunc/json.js')
js> user     
[object Object]
js> user.getName()
abruzzi
js> user.getPassword()
123456
js> user.getAddress()
612345
west HuangQuan road
js>

在rhino的发行包中有一些特别有趣的例子,大家不妨自己动手做一下,看看效果,同时体会一下函数式编程的优美,简介。

上一页  1 2 3 4 5 

Tags:函数 编程 javascirpt

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接