微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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更强大的类型系统).我不知道为什么这是功能语言的一个趋势,但是你有这个趋势.

原文地址:https://www.jb51.cc/ruby/265993.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐