Ruby真的可以用作功能语言吗?

Ruby真的可以用作功能语言吗?教授这个方面的一些好的教程是什么?注意:我真的想使用和坚持Ruby作为我的主要语言,所以我不感兴趣转换为YAFL(另一种功能语言).我对Ruby的功能方面对标准功能语言基线的表现感兴趣.谢谢.

解决方法

是的… Ruby缺乏一个合理的结构来强制实现不变性. (对象#冻结不计数)不变性真的是功能语言的基石.此外,Ruby的核心库非常面向强制性设计.它的Array和Hash类本质上都是可变的,即使String也有使不可变的方法(例如gsub!).讽刺的是,Java在这方面比Ruby更“功能”.

就这样说,可以在Ruby中执行类似功能的编程.任何时候使用block / proc / lambda,你都使用功能编程的功能.同样,地图和zip等收集方法也是高阶构造,它们的根源在于Lisp,ML和Haskell等语言.

如果你真的想做功能性编程,你将需要使用一种更符合这种类型的语言.一些建议:

> Clojure – 由于您使用Ruby表达了这个问题,我猜你是动态类型的说服力. Clojure就像一个在JVM上运行的严格功能的Lisp.
> F# – 基本上OCAML在CLR上.非常好,很干净
> Scala – 不是严格的功能语言,但比Ruby好得多
> Haskell – 大家最爱!

您会注意到,这四种语言中的三种是静态类型的.事实上,在Scala和Haskell的情况下,这些是非常静态的类型语言(比Java更强大的类型系统).我不知道为什么这是功能语言的一个趋势,但是你有这个趋势.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...