【发布时间】:2017-12-12 10:03:15
【问题描述】:
来自https://stackoverflow.com/a/44981969/156458
一种语言有两种常用方法来支持两者 函数式和面向对象的编程。
每个可调用对象都是一个方法,函数只是一个隐藏类的方法,这是 Ruby 采用的方法;
或者每个可调用对象都是一个函数,而对象方法只是具有隐式或显式参数的函数,它接收 调用方法的对象,这是 蟒蛇。
这是一个准确的说法吗?声明的来源是什么?
以下语言支持函数式和面向对象编程的方法是什么:
- 斯卡拉
- Java
- C#?
谢谢。
【问题讨论】:
-
还有 other 方法,但 claim 是这两种常见的方法......然后用两个例子来证实。 Scala、Java 和 C# 是用虚拟机实现的(前两个使用相同的虚拟机)——这意味着它是支持它的编程语言和运行时环境的组合。
-
@NathanHughes 你的意思是 scala 使用了不同于上面提到的两种方法吗?
-
我认为这句话是在观察语言设计者如何倾向于将基本支持作为事后的想法。实际上,Scala 必须使用 jvm 支持的结构,如类。但是像clojure这样的非OO jvm语言也必须这样做
-
如果您了解什么是函数式编程和 OOP,您将开始注意到语言用于支持这些功能的方法。我真的推荐 Venka 大师的这个关于函数式编程的视频 (youtube.com/watch?v=fWKp-v0De9g)
标签: oop functional-programming programming-languages