首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OO vs FP命令式与FP

OO vs FP命令式与FP
EN

Stack Overflow用户
提问于 2014-01-20 22:56:01
回答 1查看 244关注 0票数 0

我经常遇到面向对象编程和函数式编程以及命令式编程和函数式编程之间的比较。“面向对象”和“祈使”是两个不同的术语,据我理解,它们之间没有任何关系。不过,它们都与函数式编程相比较。是什么关系的面向对象和命令式编程的动机,这样的比较?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-20 23:26:10

原因很简单,主流的面向对象编程(即Java,C#)是命令式编程的一个子类别。

这是一个粗略的图表:

代码语言:javascript
复制
                   progamming
                   /        \
              declarative   imperative
                 /    \          /   \ 
         functional    \        OO   procedural  
                       logic 
                       (prolog)

在声明式编程中,您可以说出要计算的内容。假设我们想要计算链接列表的长度:

  • 空列表的长度为0。
  • 非空列表的长度比该列表的尾长多一个。

在命令式编程中,基本上按照一定的顺序操作内存:

代码语言:javascript
复制
int length = 0;              // put starting value in memory
while (!list.isEmpty()) {
   length++;                 // update memory
   list = list.next();       // update list pointer for next iteration
}
// result is in memory location associated with length

因此,适当的比较是:

  • 祈使性与声明性
  • OO与functional
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21245841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档