Scheme的Lambda与Ruby的Block

来源:互联网 发布:北京太极计算机做java 编辑:程序博客网 时间:2024/05/22 10:13

深蓝色的空间

永久域名 http://ggggqqqqihc.javaeye.com
2008-02-18
全文显示

Scheme的Lambda与Ruby的Block

关键字: scheme ruby
SICP中有一个简单而经典的例子:构造一个通用的求和函数这里的m, n和函数f都不是预先定好的。在Scheme语言中,利用可以定义出一个这样的sum函数:(define (sum m n func) (if (> m n) 0 (+ (func m)(sum (+ m 1) nfunc))))要计算1+2+...+100,先定义一个函数(define (f x)(x)),然后代入到sum中:(sum 1 100f)。当然如果每换一个通项公式都要定义一个函数的话,程序中就会充斥着大量一次性的小函数。采用Scheme的“匿名函数”(在Sch ...
  • 13:22
  • 浏览 (381)
  • 评论 (1)
  • 分类: Ruby
2008-02-17
全文显示

用Ruby把那个O(1)栈做了一下

刚才没什么事,决定试试用新学的Ruby把那个O(1)栈的问题做了一下。写着是挺快,一口气就下来了,只是代码里带着明显的C++气味。唉,习惯不是一两天就能改的。代码和C++的差不多长。主要还是不习惯Ruby的思维,再加上那个C++代码中用了很多STL的东西,已经相当精简了。classStack class Pair def initialize(first, second) @first=first@second=second end attr_reader :first, :second end def initialize@stack ...
  • 23:48
  • 浏览 (259)
  • 评论 (0)
  • 分类: Ruby
2008-02-15
全文显示

Ruby的面向对象特性

Ruby声称自己是完全面向对象的语言,不像Java那样;当年Java也声称自己是完全面向对象的……总之,这样标榜自己显得不厚道。但Ruby在面向对象方面的确更加彻底,例如像1924这样的字面量都被认为是对象。Ruby声称遵循“最小惊讶原则”,但实事上还是给我带来了不少的惊讶。在Ruby中,类(Class)的用法是相当灵活的。一个类的定义甚至是可以在程序运行时改变的,比如已经定义好一个MyClass类:class MyClass # code...end如果事后需要在MyClass中添加一个方法,那么不必直接修改类的定义部分,只要在需要的地方写出来即可:class ...
  • 18:15
  • 浏览 (259)
  • 评论 (0)
  • 分类: Ruby
2008-02-15
全文显示

开始鼓捣Ruby

观望Ruby也有几个月了吧,几个小时前我终于按捺不住,把Ruby安上了。里面带了个fxri,一个集成了Ruby解释器和文档的交互环境,感觉挺不错的。可以随时查阅文档,对于初学来说是个很好的设计。安装包还捆绑了SciTE编辑器,这个编辑器可是牛得很啊。很多人认为功能最强的编辑器是Emacs,但Emacs相当难用,而SciTE则把可定制性和易用性二者融合得很好。SciTE用好了是相当方便的,至于如何高效地使用SciTE,估计能写一本书了。最让人兴奋的是Ruby带的帮助文档居然是ProgrammingRuby的CHM电子版。一口气把Ruby.new一章看完了,对Ruby也有了初步的认识。因为以前写 ...
  • 02:33
  • 浏览 (260)
  • 评论 (0)
  • 分类: Ruby
ggggqqqqihc
  • 浏览: 11357 次
  • 性别: Icon_minigender_1
  • 来自: 廊坊
  • 详细资料
搜索本博客
博客分类
  • 全部博客 (31)
  • Java (2)
  • C++ (2)
  • Ruby (4)
  • Mathematics (3)
  • Linux (12)
  • PHP (1)
  • 算法 (1)
  • 未归类 (6)
其他分类
  • 我的收藏 (0)
  • 我的论坛帖子 (8)
  • 我的精华良好贴 (0)
最近加入圈子
  • Ubuntu For Fun
  • C++语言
  • 函数式编程の道
存档
  • 2008-08 (1)
  • 2008-07 (13)
  • 2008-06 (1)
  • 更多存档...
最新评论
  • 用Ant编译Java Web程序
    好大的水印。。。
    -- by jmu
  • 买来的教训
    "而且通过后台操作数据库非常缓慢,有时一条SQL提交上去要等上五六分钟才能看到结 ...
    -- by hellolaojiang
  • 买来的教训
    确实有这样的事经常发生,多学习下。
    -- by csy2008
  • 买来的教训
    不给自己好路走,就破他面子
    -- by andy54321
  • 买来的教训
    有些事,就算关系好也要说清楚,否则做事很头疼的!
    -- by lijie250
评论排行榜
  • 想做一个类似于白板的软件
  • 买来的教训
  • 彻底进入Linux了
  • 匪夷所思的编程语言——Whitespace
  • 想不到这段代码居然是错的
  • Rss
  • Rss_google
  • Rss_zhuaxia
  • Rss_xianguo
  • [什么是RSS?]
<script type="text/javascript">var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script><script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>