学习函数式编程:这种编码风格会让您大吃一惊

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


虽然大多数编程语言都包含可以在其函数内部设置或使用的输入,输出和外部变量,但是函数式编程可以避免这种情况.

函数式编程的思想是,每次使用相同的参数调用函数时,它都应返回相同的值.

是什么使函数式编程“起作用”?

考虑一个返回当前温度的函数。仅传递一个变量,该变量指示温度应返回摄氏度还是华氏度.

然后,该函数使用内部逻辑来返回当前温度(也许通过读取温度传感器即可)。这不视为函数式编程,因为每次使用函数时,即使函数输入相同,也有可能返回不同的值.

功能参数

函数式编程语言具有一流的功能。这意味着该函数可以像它正在返回的值一样使用.

例如,考虑函数double(x),该函数返回其输入参数值的两倍。因此,double(2)将返回4。鉴于它是一流的函数,因此代码double(double(2))与代码double(4)相同。.

与示例一样,这允许将一个函数嵌套为另一个函数的参数,依此类推.

函数式编程语言还允许函数将函数用作传递的变量。请注意,这涉及传递函数本身,而不仅仅是传递函数结果.

常见用途

函数式编程擅长实现复杂的数学建模;因此,传统上功能语言的主要用途之一是学术性.

实现并行处理时,许多功能语言也很出色。这是由于它们能够利用纯函数而总是返回相同的值,而不管它们的运行顺序如何.

其他语言需要担心竞争条件-在运行一个函数之前,将其使用的变量设置为期望值.

功能方法论

许多非功能性的编程语言可以与功能性编程方法一起使用.

这种开发方法可以提供命令式编程和函数式编程的大部分好处。您可能会失去的一些好处是内置功能,可帮助保持纯度,使开发人员承担责任.

实际上,某些语言是通过混合方法和功能编程来设计的,从而消除了部分或全部这些缺点。.

历史

Lambda微积分可以说是第一门计算机语言,并且是一种功能语言。它最初是由Alonzo Church开发的.

有趣的是,这种语言最早是在1930年代创建的-远比可编程计算机还早。 1958年,麻省理工学院(MIT)教授约翰·麦卡锡(John McCarthy)创建了LISP,该LISP以lambda微积分为模型,是最重要的功能语言之一.

今天仍在使用LISP的许多版本-一些功能比其他功能更多.

支持函数式编程的语言

  • D是在C ++之后设计的,旨在获得所有好处,同时消除了与C向后兼容的公认弱点。.

  • Elixir衍生而来,并凭借其创造h

    非常
    并发应用程序,同时使语言更易于编写和维护.

  • Erlang具有高度的可扩展性和并发性,非常适合以不可预测的顺序接收大量数据的电信和其他应用程序.

  • F#是一种开源的多范式语言,通常在

    .净
    框架。通常用于快速开发分析软件.

  • Haskell是使用Lambda微积分的纯函数式语言.

  • ML用于数学,科学,金融,分析和其他类型的应用程序。它的优势之一是开发用于操纵其他程序的软件.

  • OCaml或Objective Caml是基于Caml的免费开放源语言。它趋向于创建非常轻量级的程序,与其他语言创建的程序相比,它可以帮助它们更快地加载和运行.

  • Scala旨在易于集成到Java和其他面向对象的语言中。 Scala利用函数式编程的优势,使其可以在分布式和并发应用程序中使用.

  • 该方案基于LISP的语法和ALGOL的结构。由于其简单性,Scheme在许多计算机科学课程中被用作程序设计的入门,以展示一些计算机编程基础知识.

  • Swift的设计目标是容错,快速开发并富有表现力.

资源资源

函数式编程资源通常专注于特定语言,例如Scala。但是即使它们存在,它们也可以提供有价值的信息。因此,不要仅因为某篇文章或某本书使用了您不使用的语言而感到害羞.

讲解

  • 函数式编程实用入门:Mary Rose Cook关于使用命令式语言使用函数式编程技术的讨论.

  • 函数式编程基础知识:函数式编程的良好理论讨论.

  • 不要害怕函数式编程:函数式编程是否是“编程范式的必须赶时髦的人”?在这里找到.

  • Swift中的函数式编程简介:使用Swift进行函数式编程的详细介绍.

  • 为什么所有的函数式编程教程都这么数学? —关于Stack Exchange的讨论值得一读.

图书

  • 格雷格·迈克尔森(Greg Michaelson)的《通过Lambda微积分进行函数式编程简介》(2011年):从一开始就开始介绍.

  • 《函数式思维:语法范式》(2014年),尼尔·福特:关于函数式编程基础的高级书籍.

  • K Anand Kumar,《函数式编程的神奇世界:第一部分:函数式思考》(2014年):关于函数式编程基础的简短电子书.

  • Joshua Backfield撰写的Becoming Functional(2014):向熟悉命令式和面向对象编程的人们介绍函数式编程.

摘要

尽管函数式编程对于某些应用程序非常有用,但是许多程序员发现命令式语言的易用性,使他们的头脑变得容易得多.

但是对于数学和更正式的编码,函数式编程是一个不错的选择。而且了解函数式编程的原理对于所有程序员都非常有用。.

进一步阅读和资源

我们有更多与编码和开发有关的指南,教程和信息图:

  • F#编程:了解.NET框架中的函数式编程.

  • Erlang编程简介和资源:一种用于创建并行代码的早期功能语言.

  • Swift简介和资源:这是最新的类C语言。编程的未来?在这里找到!

您应该学习什么代码?

对应该学习哪种编程语言感到困惑?查看我们的信息图,您应该学习什么代码?

它不仅讨论了语言的不同方面,还回答了一些重要问题,例如:“我将以编程为生赚多少钱?”

您应该学习什么代码?
您应该学习什么代码?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map