到目前为止,我已经主要接触过OO编程,并期待学习一门函数式语言.我的问题是:
我一直在网上寻找声明性和命令性编程的定义,这将为我提供一些启示.但是,我发现的一些资源中使用的语言令人生畏 - 例如在维基百科上.有没有人有一个现实世界的例子,他们可以告诉我可能会给这个主题带来一些看法(也许在C#中)?
我理解面向对象的编程,并且已经编写了OO程序很长一段时间.人们似乎在谈论面向方面的编程,但我从未真正了解它是什么或如何使用它.什么是基本范式?
这个问题是相关的,但并没有提出这个问题:
像这里和整个世界的大多数开发人员一样,我多年来一直在使用面向对象编程(OOP)技术开发软件系统.因此,当我读到面向方面编程(AOP)解决传统OOP无法完全或直接解决的许多问题时,我会停下来思考,这是真的吗?
我已经阅读了很多信息,试图学习这个AOP范例的关键,并且我在同一个地方,所以,我想更好地理解它在现实世界应用程序开发中的好处.
有人有答案吗?
Mixins和Traits有什么区别?
根据维基百科,Ruby模块有点像特征.怎么会这样?
如果函数式编程语言不能保存任何状态,他们如何做一些简单的事情,比如从用户那里读取输入?他们如何"存储"输入(或存储任何数据?)
例如:这个简单的C语言如何转换为像Haskell这样的函数式编程语言?
#include<stdio.h>
int main() {
int no;
scanf("%d",&no);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
(我的问题受到了这篇优秀文章的启发:"名词王国的执行".阅读它让我更好地理解了什么是面向对象的编程,Java如何以一种极端的方式实现它,以及函数式编程语言是如何实现的对比.)
oop paradigms haskell programming-languages functional-programming
我一次又一次地听到,我正在努力理解并验证FP和OO是正交的想法.
首先,2个概念的正交意味着什么?
FP尽可能地鼓励不变性和纯度,而OO似乎是为状态和变异而构建的 - 一个有点组织的命令式编程版本?我意识到对象可以是不可变的,但OO似乎意味着状态/改变我.
它们看起来像是对立的.这对他们的正交性有何影响?
像Scala这样的语言可以很容易地执行OO和FP,这是否会影响这两种方法的正交性?
oop paradigms programming-languages functional-programming scala