Functional programming 函数式编程原理与函数式编程范式?

Functional programming 函数式编程原理与函数式编程范式?,functional-programming,Functional Programming,我正在努力理解函数式编程和命令式编程之间的区别。通过阅读,我发现函数式编程中有许多原则,我一直在使用这些原则,我认为这是一种命令式编程 我读过函数程序使用纯函数,那么这是否意味着每次我在函数范例中编写或使用纯函数 我还传入了函数,并将它们用作第一类对象,这是否意味着我是在函数范式中编写的 我在代码中几乎使用了所有的函数范式原则,但我从来没有想过我在做函数编程。使用这些函数式编程原则中的任何一种都被认为是函数式编程范式吗?函数式原则只是技术和思想。这些是函数式编程范式的基本要素,当您使用这些工具并

我正在努力理解函数式编程和命令式编程之间的区别。通过阅读,我发现函数式编程中有许多原则,我一直在使用这些原则,我认为这是一种命令式编程

我读过函数程序使用纯函数,那么这是否意味着每次我在函数范例中编写或使用纯函数

我还传入了函数,并将它们用作第一类对象,这是否意味着我是在函数范式中编写的


我在代码中几乎使用了所有的函数范式原则,但我从来没有想过我在做函数编程。使用这些函数式编程原则中的任何一种都被认为是函数式编程范式吗?

函数式原则只是技术和思想。这些是函数式编程范式的基本要素,当您使用这些工具并利用它们的独特优势来获得系统优势时,就会发生这种情况

纯函数只是一个没有副作用的函数。你已经写了一百万本了。但现在,如果您只编写纯函数,您的应用程序可以在处理核心之间进行拆分,而无需付出任何努力或承担任何风险

您以前使用过常量。但是如果您几乎总是使用常量,那么在跟踪代码时,您只需要考虑变量,这是一个很大的优势

你以前也链接过函数,但是当你让所有的东西都可以通过管道传输时,你的整个语言开始感觉像是连接了数据流,而不是给计算机一步一步的指令。这对人类来说更容易推理,也不容易出错

这些技术总是有它们的优点。当它们成为基线假设时,这些优势就会倍增。这就是功能范式

为了清晰起见,将我的评论移到这里:

好问题!在本文中,Mult.COM/@ CHARESBELY333……它讨论了RIST相对于C++的优势,因为它更好地结合了功能编程思想。他们给出的证据是,它支持映射、减少和过滤。他们似乎在说这些函数是函数式编程函数,但我认为这些函数没有什么特别之处约书亚·西格尔16分钟前

好的,太好了!这个我可以帮忙。因此,作者正在努力使用实际术语来描述他们所引用的内容。这叫做表现力。基本上,这意味着我所写的代码与我所做工作的心理模型有多接近?例如,你想给某人指示如何从A到B。理想情况下,你可以通过轮流和街道名称来表达。然而,如果你的语言迫使你用油门踏板的角度和方向盘的角度来表达这一点,那么这样做会更加笨拙。C++使它笨拙。Rust做得既优雅又有表现力

一般来说,函数式语言和声明式语言往往更善于用代码和可视化的方式表达您的想法。你有分支路径吗?你的代码看起来就像一棵分支树。你有带转换器的数据流吗?猜猜看,朋友,这只是一个将X转换为Y的函数和一个处理循环和新信息的管道操作符


问题是,表现力不是一个统计数据,也不是你可以优化的东西。这是一种使用语言时产生的感觉。范例是一般原则,倾向于内部一致,产生有用的感觉。FP感觉像流动的管道和变换。OOP感觉像是相互交流的小工具和功能。不同的心智模式有不同的用途。FP更适合于数据处理。OOP可以很好地用于UI和有状态服务。在边界上,它们可以发生冲突,这就是C++中的Cux+。
坦率地说,在这一点上,任何完全是OOP或完全FP的东西通常都是狗屎,所以当它们合并在一起时,要看到它们的身份可能有点困难。如果你完成了OOP,你就不能编写任何东西,你必须编写一百万个连接器类。如果你完成了FP,你就不能修改状态或者有副作用,比如。。。UH在屏幕上显示内容?。这些都是流派。是什么让某个东西成为一座房子?如果其他东西使用家庭节拍,它会自动播放家庭音乐吗?有人关心分类吗?

功能原则只是技术和想法。这些是函数式编程范式的基本要素,当您使用这些工具并利用它们的独特优势来获得系统优势时,就会发生这种情况

纯函数只是一个没有副作用的函数。你已经写了一百万本了。但现在,如果您只编写纯函数,您的应用程序可以在处理核心之间进行拆分,而无需付出任何努力或承担任何风险

哟 你以前用过常量。但是如果您几乎总是使用常量,那么在跟踪代码时,您只需要考虑变量,这是一个很大的优势

你以前也链接过函数,但是当你让所有的东西都可以通过管道传输时,你的整个语言开始感觉像是连接了数据流,而不是给计算机一步一步的指令。这对人类来说更容易推理,也不容易出错

这些技术总是有它们的优点。当它们成为基线假设时,这些优势就会倍增。这就是功能范式

为了清晰起见,将我的评论移到这里:

好问题!在本文中,Mult.COM/@ CHARESBELY333……它讨论了RIST相对于C++的优势,因为它更好地结合了功能编程思想。他们给出的证据是,它支持映射、减少和过滤。他们似乎在说这些函数是函数式编程函数,但我认为这些函数没有什么特别之处约书亚·西格尔16分钟前

好的,太好了!这个我可以帮忙。因此,作者正在努力使用实际术语来描述他们所引用的内容。这叫做表现力。基本上,这意味着我所写的代码与我所做工作的心理模型有多接近?例如,你想给某人指示如何从A到B。理想情况下,你可以通过轮流和街道名称来表达。然而,如果你的语言迫使你用油门踏板的角度和方向盘的角度来表达这一点,那么这样做会更加笨拙。C++使它笨拙。Rust做得既优雅又有表现力

一般来说,函数式语言和声明式语言往往更善于用代码和可视化的方式表达您的想法。你有分支路径吗?你的代码看起来就像一棵分支树。你有带转换器的数据流吗?猜猜看,朋友,这只是一个将X转换为Y的函数和一个处理循环和新信息的管道操作符


问题是,表现力不是一个统计数据,也不是你可以优化的东西。这是一种使用语言时产生的感觉。范例是一般原则,倾向于内部一致,产生有用的感觉。FP感觉像流动的管道和变换。OOP感觉像是相互交流的小工具和功能。不同的心智模式有不同的用途。FP更适合于数据处理。OOP可以很好地用于UI和有状态服务。在边界上,它们可以发生冲突,这就是C++中的Cux+。
坦率地说,在这一点上,任何完全是OOP或完全FP的东西通常都是狗屎,所以当它们合并在一起时,要看到它们的身份可能有点困难。如果你完成了OOP,你就不能编写任何东西,你必须编写一百万个连接器类。如果你完成了FP,你就不能修改状态或者有副作用,比如。。。UH在屏幕上显示内容?。这些都是流派。是什么让某个东西成为一座房子?如果其他东西使用家庭节拍,它会自动播放家庭音乐吗?有人关心分类吗?

这是否意味着每次我使用纯函数时,我都是在函数范式中编写的?这和声称任何时候你创建或使用一个方法,你都在使用OO范式一样有意义。我几乎在我的代码中使用了所有的函数范式原则——好吧,你是故意这么做的吗?你只使用了这些吗?这是不是意味着每次我制作或使用一个纯函数时,我都是用函数范式写的?这和声称任何时候你创建或使用一个方法,你都在使用OO范式一样有意义。我几乎在我的代码中使用了所有的函数范式原则——好吧,你是故意这么做的吗?你只是用那些吗?你没有。你为什么要这么做?坚持这种模式没有什么好处。@JoshuaSegal没有函数式编程函数。范式是一种哲学,而不是具体的东西。没有资本主义的销售,只有销售,资本主义将销售和交易作为其哲学的核心原则,并通过这样做实现了一些优势。编程语言可以同时具有函数式编程功能和命令式功能。我想知道什么样的粒度可以考虑功能性和必要性。我知道粒度比整个程序要小,因为你可以在同一个程序中同时使用两种范例。事实是,表现力不是统计数据,也不是你可以优化的东西。这是一种使用语言时产生的感觉。范例是一般原则,倾向于内部一致,产生有用的感觉。FP感觉像流动的管道和变换。OOP感觉像是相互交流的小工具和功能。不同的心智模式有不同的用途。FP更适合于数据处理
ng。OOP可以很好地用于UI和有状态服务。在边界上,它们可以稍微碰撞,这就是C++中的“Culox”的来源。并行化是一个大问题。不变性和纯函数意味着您的代码可以被复制和扩展,而不会出现状态冲突或其他此类错误。代数数据类型a.k.a.变体/标记的联合/和类型是表达内容的一种非常好的方式,直到我将它们重新破解到TypeScript中,我才感到高兴。OOP方面的任何东西都无法与OCaml的模式匹配相比,OCaml的模式匹配不仅仅适用于数据分解。我经常使用它来处理分支逻辑路径。Functional还可以更好地用于现在已经很普遍的反应式渲染模型。你为什么要这么做?坚持这种模式没有什么好处。@JoshuaSegal没有函数式编程函数。范式是一种哲学,而不是具体的东西。没有资本主义的销售,只有销售,资本主义将销售和交易作为其哲学的核心原则,并通过这样做实现了一些优势。编程语言可以同时具有函数式编程功能和命令式功能。我想知道什么样的粒度可以考虑功能性和必要性。我知道粒度比整个程序要小,因为你可以在同一个程序中同时使用两种范例。事实是,表现力不是统计数据,也不是你可以优化的东西。这是一种使用语言时产生的感觉。范例是一般原则,倾向于内部一致,产生有用的感觉。FP感觉像流动的管道和变换。OOP感觉像是相互交流的小工具和功能。不同的心智模式有不同的用途。FP更适合于数据处理。OOP可以很好地用于UI和有状态服务。在边界上,它们可以稍微碰撞,这就是C++中的“Culox”的来源。并行化是一个大问题。不变性和纯函数意味着您的代码可以被复制和扩展,而不会出现状态冲突或其他此类错误。代数数据类型a.k.a.变体/标记的联合/和类型是表达内容的一种非常好的方式,直到我将它们重新破解到TypeScript中,我才感到高兴。OOP方面的任何东西都无法与OCaml的模式匹配相比,OCaml的模式匹配不仅仅适用于数据分解。我经常使用它来处理分支逻辑路径。Functional还可以更好地用于现在已经很常见的反应式渲染模型。