Questions tagged «paradigms»

计算机编程的基本样式。

2
函数式编程语言是否会带来副作用?
根据Wikipedia 所说,声明性的函数式编程语言禁止副作用。通常,声明式编程会尝试最小化或消除副作用。 同样,根据维基百科,副作用与状态变化有关。因此,从某种意义上说,函数式编程语言实际上消除了副作用,因为它们不保存任何状态。 但是,此外,副作用还有另一个定义。副作用 除了返回值之外,还可以与其调用函数或外界进行交互。例如,特定函数可能会修改全局变量或静态变量,修改其参数之一,引发异常,将数据写入显示或文件,读取数据或调用其他副作用函数。 从这种意义上说,函数式编程语言实际上会带来副作用,因为有无数的函数实例影响它们的外部世界,调用其他函数,引发异常,写入文件等。 那么,最后,函数式编程语言是否允许副作用? 或者,我不明白什么是“副作用”,因此命令式语言允许它们,而声明式语言则不允许。根据以上内容以及所得到的内容,没有一种语言能够消除副作用,因此我可能遗漏了一些有关副作用的信息,或者Wikipedia定义的定义不正确。

3
基于类型的不变量的函数编程答案是什么?
我知道不变性的概念存在于多种编程范例中。例如,循环不变式与OO,功能和过程编程有关。 但是,在OOP中发现的一种非常有用的类型是特定类型数据的不变性。这就是标题中所说的“基于类型的不变式”。例如,一个Fraction类型可能具有numerator和denominator,并且其gcd始终为1(即,分数为简化形式)是不变的。我只能通过某种类型的封装来保证这一点,而不是随意设置其数据。作为回报,我不必检查它是否减少了,因此我可以简化等式检查等算法。 另一方面,如果我只是声明一个Fraction类型而没有通过封装提供此保证,那么我就不能安全地在该类型上编写任何函数(假定分数减少了),因为将来有人可能会提出并添加一种方法掌握未减少的分数。 通常,缺少这种不变性可能导致: 需要在多个位置检查/确保前提条件的更复杂算法 DRY违规,因为这些重复的前提条件表示相同的基础知识(不变性应为真) 必须通过运行时故障而不是编译时保证来强制执行前提条件 所以我的问题是函数编程对这种不变性的回答是什么。是否有实现或多或少相同功能的惯用方式?还是功能编程的某些方面使收益的相关性降低?

6
您可以学习C语言中的函数式编程吗?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 4年前关闭。 作为此处评论讨论的结果,我想知道您是否可以学习C语言中的函数式编程?
9 c  paradigms 

2
适用于UI编程的范例
这是一个更具体的问题(或者实际上是两个,但它们是相关的),来自OOP技术死亡的评论,有人说OOP不是GUI编程的正确范例。 在这里和这里阅读评论,我仍然感觉有很多东西要学习:哪种编程范例被认为是合适的,为什么它们比其他范例更好(也许用示例进行说明?) 我从标题和问题中删除了tk-example

5
您是否可以通过学习其他语言范例来提高编程技能?
如果是这样,您能告诉我学习新的范式是如何改变您解决编程问题的方法的,即使问题出在另一范式/语言/技术中? 如果您能以一种特定的方式告诉我,我将不胜感激,通过学习Y(即Scheme / Prolog / Lisp)可以提高您的X(即JAVA / C#/ C ++)编程技能。 另外,您建议什么范例最有助于成为一名优秀的程序员? 我的经验只是结构化的-OOP,命令式-过程性的,并且在某种程度上是模板元编程,但是我的目标不是学习另一种语言,而是学习解决问题的不同方法。 谢谢!

4
用于编写国际象棋引擎的范式是什么?
如果要编写国际象棋游戏引擎,您将使用哪种编程范例(OOP,过程等),为什么要选择它?象棋引擎是指程序的一部分,它可以评估当前板并确定计算机的下一个动作。 我问是因为我认为写象棋引擎可能很有趣。然后我想到可以将其用作学习函数式编程的项目。然后我想到有些问题不太适合功能范式。然后我想到这可能是很好的讨论饲料。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.