Functional Programming vs. Imperative Programming
来源:互联网 发布:中走丝编程软件 编辑:程序博客网 时间:2024/04/29 11:28
The functional programming paradigm was explicitly created to support a pure functional approach to problem solving. Functional programming is a form of declarative programming.In contrast, most mainstream languages, including object-orientedprogramming (OOP) languages such as C#, Visual Basic, C++, and Java –,were designed to primarily support imperative (procedural) programming.
With an imperative approach, a developer writes code that describes inexacting detail the steps that the computer must take to accomplish thegoal. This is sometimes referred to as algorithmicprogramming. In contrast, a functional approach involves composing theproblem as a set of functions to be executed. You define carefully theinput to each function, and what each function returns. The followingtable describes some of the general differences between these twoapproaches.
Characteristic
Imperative approach
Functional approach
Programmer focus
How to perform tasks (algorithms) and how to track changes in state.
What information is desired and what transformations are required.
State changes
Important.
Non-existent.
Order of execution
Important.
Low importance.
Primary flow control
Loops, conditionals, and function (method) calls.
Function calls, including recursion.
Primary manipulation unit
Instances of structures or classes.
Functions as first-class objects and data collections.
Although most languages were designed to support a specific programmingparadigm, many general languages are flexible enough to supportmultiple paradigms. For example, most languages that contain functionpointers can be used to credibly support functional programming.Furthermore, in C# 3.0 and Visual Basic 9.0, explicit languageextensions have been added to support functional programming, includinglambda expressions and type inference. LINQ technology is a form ofdeclarative, functional programming.
- Functional Programming vs. Imperative Programming
- functional programming
- Functional Programming
- Functional Programming
- imperative programming(IP), founction programming(FP)
- 突然想到Functional Programming
- Functional Programming 的思考
- Trends in Functional Programming
- Functional Reactive Programming
- Functional Programming & Template Metaprogramming
- [Haskell] 初识Functional Programming
- Functional Programming in C++
- Apply Functional Programming Principles
- Functional Reactive Programming
- Apply Functional Programming Principles
- Functional Reactive Programming<1>
- Functional Programming[转]
- Swift Functional Programming Tutorial
- vs2005 "automation服务器不能创建对象"解决方法. -- 安装好VS2005 SP1为什么还是不能创建WEB文件
- Ubuntu软件安装和删除相关命令
- 仓储类型
- BREW触摸屏开发参考
- 关于struts2中警告消息问题的解决方法
- Functional Programming vs. Imperative Programming
- [精华] 连接器和加载器 之 连接和加载
- 做日本外包为什么这么累?
- Oracle循环插入测试数据
- PHP应用实例
- 对数据库的研究计划
- AVChat程序调试
- Redhat Linux 配置
- SQL数据字典