Ruby Ruby 是函数式语言吗?

springwq · 2013年08月25日 · 最后由 reus 回复于 2013年08月26日 · 3899 次阅读

如果 Ruby 不是,为什么 Paul Graham 说它最像 Lisp?

http://www.ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html

如果我们把流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。
Python模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能,也一起模仿了。至于Ruby,如果回到1975年,你声称它是一种Lisp方言,没有人会反对。
编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平。

现在连 scala 都算函数式语言了,ruby 也算吧...

everything is expression, symbol literal, 是其他 3 种语言中都没有的

我觉得吧函数式是一种编程风格,并不是说某种语言是面向对象就不能是函数式,用什么语言都可以写出函数式风格来,区分「函数式语言」主要是看这语言设计的时候是否倾向于让用户使用 FP . Ruby 以其灵活性完全可以写出 FP 风格的代码来,但是无论 Ruby 社区的倾向还是 实际使用的便利程度,Ruby 都很难归入函数式语言里面...

我不是 Lisp 黑,但是我想问,现在的 Lisp 比 1958 年进步了多少?

#3 楼 @zlx_star Lisp is math, math 进步了多少 Lisp 就进步了多少

保羅•葛拉漢姆大叔是想說這些語言演化的越來越像 Lisp。Lisp 不是函數式的,函數式是一種編程範式。話說 Java 也可以很函數式哦! http://lisp.tw/2013/02/17/functional-programming-for-the-rest-of-us/ 當然 Ruby 也可以... https://github.com/JuanitoFatas/Ruby-Functional-Programming

java 都有 lambda expression 了,perl6 的 macro 和 lisp 一样强了,python 也不缺 closure、higher-order function 之类的东西,这些语言包括 ruby 全都支持函数式编程。ruby 是不是,取决于“函数式语言”的定义。如果是纯的才是,那 ruby 就不是,如果支持函数式风格的代码就算是,那就是。lisp 也是多范式语言,Haskell 之类的才是纯的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号