Javascript可以实现OOP但Ruby无法实现函数式编程?

nev*_*ame -8 javascript ruby oop functional-programming

我是"真正的"Javascript的新手:我知道更多的函数式编程.

看来,在Javascript中,您可以从两个方面获得最佳效果:功能和面向对象编程.

但在Ruby中,您没有第一类函数(函数作为数据类型).

这是否意味着Javascript拥抱两全其美,而Ruby只接受面向对象的编程风格?

hor*_*guy 7

Ruby 确实有一流的功能.是什么让你觉得它没有?来自维基百科:具有一流功能的语言是:

该语言支持在程序执行期间构造新函数,将它们存储在数据结构中,将它们作为参数传递给其他函数,并将它们作为其他函数的值返回.

你可能会因为需要通过a调用Ruby的Procs/Lambdas这一事实,call()但这不会影响他们的第一类.Common Lisp lambdas也被调用了funcall,我不记得有人声称Common Lisp没有一等函数.

  • sepp2k:看到这里:http://cl-cookbook.sourceforge.net/functions.html看来,在常见的lisp(与scheme不同)中,你需要使用`funcall`来调用lambda(绑定到变量):例如(let((foo(lambda(x)x)))(funcall foo y)) (2认同)