当前位置:  开发笔记 > 编程语言 > 正文

Ruby真的可以用作函数式语言吗?

如何解决《Ruby真的可以用作函数式语言吗?》经验,为你挑选了1个好方法。

Ruby真的可以用作函数式语言吗?教这个语言方面有哪些好的教程?注意:我真的想使用并坚持使用Ruby作为我的主要语言,因此我对此转换为YAFL(另一种函数式语言)并不感兴趣.我真的很感兴趣Ruby的功能方面对标准功能语言基线的表现如何.谢谢.



1> Daniel Spiew..:

是的......有点儿.Ruby缺乏合理的构造来强制实现不变性.(Object#freeze不计)不变性实际上是函数式语言的基石.此外,Ruby的核心库非常注重命令式设计.它ArrayHash类本质上都是可变的,甚至String还有使不可变的方法(例如gsub!).具有讽刺意味的是,Java在这方面比Ruby更具"功能性".

话虽如此,可以在Ruby中进行类似功能的编程.无论何时使用块/ proc/lambda,您都使用来自函数式编程的功能.同样,收集方法喜欢mapzip也是高阶构造,它们的根源在于Lisp,ML和Haskell等语言.

如果您真的想要进行函数式编程,那么您将需要使用更适合该类型的语言.一些建议:

Clojure - 因为你用Ruby来表达这个问题,我猜你是动态类型的说服力.Clojure就像一个在JVM上运行的严格功能的Lisp.

F# - 基本上是CLR上的OCaml.非常好,非常干净

Scala - 不是一种严格的函数式语言,但它比Ruby更好

Haskell - 每个人都喜欢!

您会注意到这四种语言中有三种是静态类型的.实际上,在Scala和Haskell的情况下,这些是非常静态类型的语言(比Java更强大的类型系统).我不确定为什么这是函数式语言的趋势,但你有它.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有