« 文明 | 首页 | adolf »
个人主页: http://blog.sina.com.cn/silverbullettt
在 为什么Lisp语言如此先进?(译文) 留言:
Paul Graham展示的是: 1,各个语言返回函数的能力; 2,各个语言定义的函数能具有状态的能力。 第二点C++实际上可以做到,通过仿函数,当然没那么优雅。 template class Foo { public: Foo(T n): x_(x) {} T operator()(T x) { return x + x_; } private: T x_; }; Foo foo(10); cout << foo(20) << endl; 就能得到30。 我认为他想说的是:函数也能有状态。Lisp和现在的Python都有闭包,所以轻易地实现了这一点。
2011-12-30 23:14:44
留言(1 条)
在 为什么Lisp语言如此先进?(译文) 留言:
Paul Graham展示的是:
foo(10);
1,各个语言返回函数的能力;
2,各个语言定义的函数能具有状态的能力。
第二点C++实际上可以做到,通过仿函数,当然没那么优雅。
template
class Foo {
public:
Foo(T n): x_(x) {}
T operator()(T x) {
return x + x_;
}
private:
T x_;
};
Foo
cout << foo(20) << endl;
就能得到30。
我认为他想说的是:函数也能有状态。Lisp和现在的Python都有闭包,所以轻易地实现了这一点。
2011-12-30 23:14:44