语言的编程能力



在《黑客与画家》一书中,作者在13章——书呆子的复仇,有谈论各种语言的编程能力。

考虑我们需要写一个函数,它能够生成累加器,即这个函数A接受一个参数n,然后返回另一个函数B,函数B接受参数i,然后返回累加的值。


在Lisp写法如下

(def foo (n)
  (lambda (i) (incf n i)))

在Ruby写法:

def foo (n)
  lambda {|i| n += i } end

Perl 5的写法则是:

sub foo {
  my ($n) = @_;
  sub {$n += shift}
}

其中作者给出的Python写法是:

def foo (n):
  s = [n]
  def bar (i):
    s[0] += i
    return s[0]
  return bar

真是比C++还要复杂,无语了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值