猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
OOP与函数式编程与过程性
这些编程范例之间有什么区别,它们是否更适合于特定问题,还是任何用例都比其他用例更受青睐?
欣赏建筑实例!
慕容森
浏览 461
回答 3
3回答
12345678_0001
他们每个人都有自己的优点-他们只是解决相同问题的不同方法。在纯粹的过程样式中,数据往往与对其上运行的功能高度去耦。在面向对象的风格中,数据倾向于带有一系列功能。在功能样式中,数据和功能趋向于彼此之间具有更多的共同点(如Lisp和Scheme),同时在实际使用功能方面提供了更大的灵活性。还倾向于根据递归和组合而不是循环和迭代来定义算法。当然,语言本身只会影响首选哪种样式。即使使用像Haskell这样的纯函数式语言,也可以以过程样式(尽管不鼓励这样做)编写,甚至可以使用像C这样的过程语言,以面向对象的样式(例如GTK +和EFL API)。需要明确的是,每个范例的“优势”仅在于算法和数据结构的建模。例如,如果您的算法涉及列表和树,那么功能性算法可能是最明智的。或者,例如,如果您的数据是高度结构化的,那么如果这是您语言的本机范式,则将其组合为对象可能更有意义-或者,可以将其简单地编写为monad的功能抽象,是Haskell或ML之类的语言的原生范例。您选择使用哪种方法,对于您的项目和语言支持的抽象才更有意义。
0
0
0
森林海
我认为这些天可用的库,工具,示例和社区完全取代了范例。例如,ML(或其他任何语言)可能是最终的通用编程语言,但是如果您无法为正在做的事情获得任何好的库,那么您就搞砸了。例如,如果您要制作视频游戏,那么C ++中会有更多优秀的代码示例和SDK,因此您可能会更好。对于小型Web应用程序,有一些很棒的Python,PHP和Ruby框架可以使您快速启动并运行。由于编译时检查以及企业库和平台,Java是大型项目的理想选择。过去,用于不同语言的标准库非常小,易于复制-C,C ++,Assembler,ML,LISP等。这些库具有基础知识,但是当涉及到事物标准化时,往往会屈服像网络通讯,加密,图形,数据文件格式(包括XML),甚至基本的数据结构(如平衡树和哈希表)都被忽略了!如今,Python,PHP,Ruby和Java等现代语言都提供了更为完善的标准库,并且您可以轻松使用许多优秀的第三方库,这在很大程度上要归功于它们采用了命名空间,以防止库彼此冲突,和垃圾回收,以标准化库的内存管理方案。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
源码
spark分组排序提取前N个值
1 回答
请问转让门店小程序需要源码吗?门店小程序有自己的源代码吗?是否要注册计算机软件著作权才可以交易?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续