我很难理解函数编程和命令式编程之间的区别。通过阅读https://www.sitepoint.com/what-is-functional-programming/,我发现在函数式编程中有许多原则,我一直在我认为是命令式的编程中使用这些原则。
我读过函数式程式使用纯函式,这是否意味着每次我在函数式范型中使用或使用纯函数式程式?
我还传递了函数并将它们作为第一类对象使用,这是否意味着我是在函数式范例中写作?
我几乎在代码中使用了所有的函数范例原则,但我从未想过自己正在进行函数式编程。使用这些函数式程式设计原则的行为是否被视为函数式程式设计范例?
发布于 2020-12-07 16:16:58
功能原理只是技术和思想。这些是函数式编程范式的基本原理,当您使用这些工具并利用它们的独特优势获得系统优势时,就会发生这种情况。
纯函数只是一个没有副作用的函数。你写了上百万这样的东西。但是现在,如果您只编写纯函数,则您的应用程序可以在处理核心之间进行拆分,而无需付出任何努力或承担任何风险。
你以前用过常量。但是,如果您几乎总是使用常量,那么在跟踪代码时唯一需要考虑的是变量,这是一个相当大的优势。
你以前也有过链接功能,但是当你把所有的东西都变成管道时,你的整个语言开始感觉像是连接数据流,而不是一步一步地给计算机指令。这对人类来说更容易推理,也不太容易出错。
这种技术总是有其优点的。当它们成为基线假设时,这些优势就会成倍增加。这就是功能范式。
为了清楚起见,在此提出我的意见:
好问题!在本文中,medium.com/@charlesbeley333/…它谈到了Rust如何比C++具有优势,因为它更好地结合了函数式编程思想。他们给出的证据是,它支持Map、Reduce和Filter。他们似乎在说这些函数是“函数编程函数”,但我不认为这些函数有什么特别之处。-约书亚·西格尔16分钟前
好的太好了!我能帮上忙。所以这位作者很难用实际的术语来形容他们所指的东西。这叫做“表现力”。基本上,这意味着我所写的代码与我所做的心理模型有多近?例如,您想给某人指导如何从A到B,理想情况下,您可以通过轮流和街道名称来实现这一点。然而,如果你的语言迫使你用油门踏板的角度和方向盘的角度来表达这一点,那就做得更笨重了。C++做的很笨重。铁锈表现得既优雅又有表现力。
一般来说,函数式和声明式语言更善于用代码和视觉来“表达”你的想法。你有支路吗?您的代码看起来就像一棵分支树。你有变压器的数据流吗?你猜怎么着,朋友,这只是一个把X转换成Y的函数,还有一个管操作符,负责循环和新的信息。
问题是,表现力不是一个统计数据,也不是你可以优化的东西。在使用语言时,这是一种紧急的“感觉”。范式是一般的原则,往往是内部一致的,产生有用的“感觉”。FP感觉就像流动的管道和转换。OOP感觉就像互相交谈的小工具和功能。不同的心理模型有不同的用途。FP更适合于数据处理。OOP可以用于UI和有状态服务。在边界上,它们可能会发生一点冲突,这就是在C++中发出的响声。
坦率地说,在这一点上,任何“完全OOP”或“完全FP”的东西通常都是狗屎,所以当两者如此合并时,很难看出两者的身份。如果您完成了OOP,您就不能编写任何东西,您必须编写100万个连接器类。如果完成FP,您就不能修改状态或产生副作用(比如.嗯..。在屏幕上显示东西?)。这些是体裁。是什么让房子被敲打的?如果有什么东西用的是房子的节拍,它会自动播放音乐吗?有人关心分类吗?
https://stackoverflow.com/questions/65185253
复制相似问题