一个人的优势是什么?
为什么像Swift和JavaScript这样的语言决定采用方法路由?
我知道我可以像Haskell那样做,并且只有运算符的函数使它像方法一样可读(当链接时),那么为什么这些语言带有方法呢?
编辑:澄清“方法路线”的含义
这些语言的收藏集包含map
,filter
和reduce
等方法,而不是将其作为单独的函数。
即,你会这样使用它:
[1, 2, 3].map(...)
而不是map(...)([1, 2, 3])
答案 0 :(得分:1)
我认为其中一个原因可能是像Swift和JavaScript这样的语言是面向对象的语言。而对象有方法,否则,没有理由使用对象。像Haskell这样的语言是函数式编程语言,它们更少依赖于对象(其中一些根本没有对象,比如clojure)。所以问题是为什么它们中的一些是OO语言,有些是函数式编程语言。我认为因为OO语言和函数式编程语言都有其优势。与OO语言一样,您可以实现good design principle。函数式编程语言非常适合multi-threading problems。所以有些人会选择这条路线而有些则选择另一条路线。
但更重要的是,语言试图既面向对象又具有功能性。例如,Swift和Javascript,它们都有闭包,lambda,函数作为第一类对象,不变性等等。我认为oo语言和函数语言之间的边界将变得越来越模糊。甚至Java,许多人认为是面向对象最多的(Java支持的功能语言功能较少),现在有了lambda。
因此,语言的路径并不重要,因为使用哪种语言并不重要(有时它确实很重要,特别是对性能要求较高)。
我试着在这里评论我的想法,但显然,我超过了最大字符限制。这不是唯一的答案,但希望它有所帮助。