展开

关键词

首页关键词函数式编程语言发展

函数式编程语言发展

函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambdacalculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。[2] 和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里函数的计算可随时调用。

相关内容

  • 函数式编程简介

    函数式编程是什么 函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。,函数式语言更加关注执行的结果,而非执行的过程。n = n (λb.FALSE) TRUEadd = succ n1 n2函数式编程语言的发展在这之后,随着通用计算机的产生,人们发觉使用机器码写程序太没有效率。1990年,惰性求值的函数式编程语言 Haskell 1.0 发布。?编程语言发展历史神奇的 Y Combinator(def Y (fn ((fn (x x)) (fn (f (fn ((x x) y)))))))Lisp、ML以及Haskell的关系Lisp是动态语言
    来自:
    浏览:482
  • 何时使用函数式编程语言?

    在哪些情况下,我应该选择使用函数式编程语言而不是面向对象更加冗长的语言,如C ++,C#或Java? 我明白什么是函数式编程,我不明白什么类型的问题是一个完美的解决方案?
    来自:
    回答:2
  • 广告
    关闭

    云+社区杂货摊第四季上线啦~

    攒云+值,TOP 100 必得云+社区定制视频礼盒

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • 函数式编程语言的排序有哪些?

    我学习函数式编程已经有一段时间了,但我还没有读到关于与函数式编程语言排序的文章。 我知道基于值交换的排序算法很难用函数式思想实现,但是我想知道在函数式编程中有什么排序算法吗?
    来自:
    回答:2
  • 实用的函数式编程

    函数式编程 (functional programming) 正式开始有长足的发展始于 10 年前, 从那时起, 我开始看到 Scala, Clojure 和 F# 这样的语言得到关注.那个时候我们都相信, 它将会以我们无法想象的方式影响软件发展.于是我们开始学习函数式编程 (FP). 一旦变量被初始化后, 函数式编程强烈不支持再对变量的状态进行改变.函数式编程更易写, 易读, 易于测试和理解. 听到这些, 相信很多人已经开始兴奋了. 当尝试过函数式编程以后, 你会发现一切都非常容易.在一个函数式编程语言中, 当你向一个栈 push 一个元素, 你将会得到一个新的栈, 原来的栈并不会发生改变. 这意味着减轻了程序员的负担, 他们所需要记忆的东西更少了, 需要跟踪的东西更少了.因而, 代码会更易写, 易读, 易于理解和测试.那么, 你应该使用哪种函数式编程语言呢? 我最喜欢的是 Clojure. 因为 Clojure 极其简单.
    来自:
    浏览:171
  • 关于函数式编程

    函数是Python内建支持的一种封装,通过把大段代码拆成函数,再一层一层的调用函数,就可把复杂任务分解成简单的任务这种分解可以称之为面向过程的程序设计函数就是面向过程的程序设计的基本单元函数式编程,虽也可以归结到面向过程的程序设计,越是抽象的计算,离计算机硬件越远  对应到编程语言,则    越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言    越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言关于函数的副作用  对于纯函数,只要输入是确定的,输出就是确定的,就是一个输入只能有一种输出,这种函数称之为没有副作用  对于有些函数,它允许使用变量,由于函数内部的变量状态不确定,同样一个输入可能得到不同的输出,这种函数称之为有副作用关于函数式编程  函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,也就是没有副作用  函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数Python与函数式编程  Python对函数式编程提供部分支持  由于Python允许使用变量,因此Python不是纯函数式编程语言
    来自:
    浏览:216
  • 函数式编程初探

    不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。越来越多的迹象表明,函数式编程已经不再是学术界的最爱,开始大踏步地在业界投入实用。 也许继面向对象编程之后,函数式编程会成为下一个编程的主流范式(paradigm)。在其他类型的语言中,变量往往用来保存状态(state)。不修改变量,意味着状态不能保存在变量中。函数式编程使用参数保存状态,最好的例子就是递归。其他类型的语言,函数的返回值往往与系统状态有关,不同的状态之下,返回值是不一样的。这就叫引用不透明,很不利于观察和理解程序的行为。 三、意义 函数式编程到底有什么好处,为什么会变得越来越流行? 1.接近自然语言,易于理解 函数式编程的自由度很高,可以写出很接近自然语言的代码。
    来自:
    浏览:441
  • 函数式编程初探

    不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。越来越多的迹象表明,函数式编程已经不再是学术界的最爱,开始大踏步地在业界投入实用。也许继面向对象编程之后,函数式编程会成为下一个编程的主流范式(paradigm)。在其他类型的语言中,变量往往用来保存状态(state)。不修改变量,意味着状态不能保存在变量中。函数式编程使用参数保存状态,最好的例子就是递归。其他类型的语言,函数的返回值往往与系统状态有关,不同的状态之下,返回值是不一样的。这就叫引用不透明,很不利于观察和理解程序的行为。三、意义函数式编程到底有什么好处,为什么会变得越来越流行?1.接近自然语言,易于理解函数式编程的自由度很高,可以写出很接近自然语言的代码。
    来自:
    浏览:519
  • 前端中的函数式编程

    前端中的函数式编程函数式编程出现的时间很早,但在近几年才慢慢在前端中有所表现,个人觉得主要原因在于,前端技术的快速发展虽然足以支持日益复杂的页面交互需求,但我们仍然需要一种能够更好表达交互的范式或者框架2.1 函数式语言有很多语言都是支持函数式编程的,当然我们的 JavaScript也支持。一门高级语言是否支持函数式编程,只要看其函数是否是一等公民(first class):函数能够作为其他函数的参数或者返回值。其实正如第2部分一开始讲的,函数式编程本身的异步处理、声明式等特性是很适合前端开发的,所以才导致前端技术发展过程中,多多少少有点向函数式编程靠近、借鉴的原因。总结函数式编程在前端中的应用广泛,在某些语法、框架中实际上都借鉴了函数式编程的思想,但我们可能并没有发觉。从前端目前的发展趋势来看,个人觉得函数式编程的应用还会继续下去,希望大家可以一起关注。
    来自:
    浏览:658
  • 函数式编程与面向对象编程: 静态类型语言的表达力 静态类型语言与动态类型语言函数式编程与面向对象编程: 静态类型语言的表达力 静态类型语言与动态类型语言

    函数式编程与面向对象编程: 静态类型语言的表达力 静态类型语言与动态类型语言之剑2016.5.3 21:43:20----像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑、开发大型商业系统、Java语言发展到现在其语言特性庞大,如果要完全了解需要几百页的文档,在其发展过程中又只做加法没又减法,语言慢慢风格混杂,变成了现在这种四不像的状态,函数式的特性硬生生的嫁接在原来的面向对象特性之上。     如果要学习一种新的写代码的思路,面向函数式的语言是目前最好的选择了,而Haskell有是函数式语言的先驱和集大成者,很多函数式语言的语法都是从Haskell借鉴来的。作为纯函数式语言,Haskell将必然会产生Side-Effect的代码比如IO操作放到了一起,也即monad风格的部分,而其他的函数可以保证完全的函数式特征,对于同样的输入无论运行多少次结果都是一样的,跟数学中函数的定义一样严格,函数式是一种CPU友好的语言,在当前多核计算机发展状况下,函数式可以让程序非常安全的在多个核心上并发而不用担心大量的数据交互和side-effect, 从而在语言编译过程中能够针对并发进行大幅的优化
    来自:
    浏览:228
  • 6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史

    语言计算机语言指用于人与计算机之间通讯的语言,也即是平时说的编程语言编程指令的概念很早就形成了,其实指令本身就是一种编程一个指令替代了一组逻辑电路或者机电式机械式中的一个计算单元你只需要一个指令就相当于已经操作了一整个的模块这不也是一种编程的思维吗,只不过是指令对应硬件随着指令在现代计算机中的应用,计算机程序得以快速的发展因为一旦你知道计算机可以执行哪些指令,其实也就是哪些功能,具有哪些能力你就可以把这些指令按照一定的逻辑顺序重排组装这就是广义上的计算机程序计算机语言的发展有两个阶段面向机器到脱离机器的转变,汇编语言只是机器语言的助记符语言不同的机器有不同的汇编语言需要汇编程序翻译成计算机可以识别的二进制机器语言本质还是面向机器的低级语言机器语言和汇编语言都是面向硬件的具体操作的,语言对机器过分依赖,所以称之为低级语言高级语言为了能够更加通用的解决问题,不需要你了解硬件但是这是高级语言隐藏了她们,而不是说这些东西不存在不重要,所有的语言都逃不过这一关始终是要编程机器语言的也正是由于隐藏了太多东西,就好像与底层的东西隔着好几层玻璃尽管看的见,但是自然清晰度下降直接后果就是编译后的文件变得更大-导航页》1.计算机发展阶段2.计算机组成-数字逻辑电路3.操作系统简单介绍4.计算机启动过程的简单介绍5.计算机发展个人理解-电路终究是电路6.计算机语言的发展7.计算机网络的发展8.web的发展9.
    来自:
    浏览:352
  • 函数式编程杂谈

    本文通过函数式编程的一些趣味用法来阐述学习函数式编程的奇妙之处。一、编程范式综述编程是为了解决问题,而解决问题可以有多种视角和思路,其中普适且行之有效的模式被归结为“编程范式”。编程语言日新月异,从汇编、Pascal、C、C++、Ruby、Python、JS,etc...其背后的编程范式其实并没有发生太多变化。抛开各语言繁纷复杂的表象去探究其背后抽象的编程范式可以帮助我们更好地使用computer进行compute。3.函数式函数式编程将计算机运算视为函数运算,并且避免使用程序状态以及易变对象。这里的“函数”不是指计算机中的函数,而是指数学中的函数,即自变量的映射。但是,如果我们花时间去学习、发现可以归纳抽离的部分使其朝着声明式迈进,结合函数式的思维来思考,能为我们的编程带来巨大的便捷。通过其他语言来触类旁通函数式编程的奇技淫巧,确实能带给我们新的视野。
    来自:
    浏览:230
  • 如何编写高质量的 JS 函数(3) --函数式编程

    此篇文章属于理论篇,在本文中,我将通过背景加提问的方式,对函数式编程的本质、目的、来龙去脉等方面进行一次清晰的阐述。写作逻辑通过对计算机和编程语言发展史的阐述,找到函数式编程的时代背景。通过对与函数式编程强相关的人物介绍,来探寻和感受函数式编程的那些不为人知的本质。下面列一个简要目录:一、背景介绍计算机和编程语言的发展史二、函数式编程的 10 问为什么会有函数式语言?【 正 文 】计算机和编程语言的发展史计算机和编程语言的发展史是由人类主导的,去了解在这个过程中起到关键作用的人物是非常重要的。下面我们一起来认识几位起关键作用的超巨。一、戴维·希尔伯特?其实 MySQL,就是逻辑式语言,它通过提问的方式来完成操作。冯诺依曼体系更符合面向过程的语言。这个分类可以好好看看,会有一些感受的。十、简单的程序设计语言发展史?十二、总结通过对计算机语言的发展史和关键人物的简洁介绍,我们可以从高层面去体会到函数式编程在计算机语言发展史中的潜力和影响力。不过,通过背景和人物的介绍,对函数式编程的理解还是有限的。
    来自:
    浏览:345
  • Python函数式编程

    引 入要讲函数式编程,只要有点编程基础的同学应该可以想到命令式编程。那么何为函数式编程?我的理解是替换所有命令式编程的一种编程,在Python语言中,用于函数式编程的主要由3个基本函数和1个算子构成。基本函数:map()、reduce()、filter()算子(operator):lambda下面就和我一起初步学习一下Python的函数式编程吧!当然因为这个例子比较简单,我们也可以简化r1 = filter(lambda x:x,list_x)好了,今天分享内容就这么多,最后再多说一句,Python只是支持函数式编程模式,而不是函数式编程的语言,作为小白,我们还是应该先把命令式编程学好再谈进阶吧!
    来自:
    浏览:161
  • 第5章 函数与函数式编程第5章 函数与函数式编程

    ( 李善兰《代数学》) 函数式编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以传入函数参数,也可以返回一个函数。函数式编程与命令式编程最大的不同是:函数式编程的焦点在数据的映射,命令式编程(imperative programming)的焦点是解决问题的步骤。函数式编程不仅仅指的是Lisp、Haskell、 Scala等之类的语言,更重要的是一种编程思维,解决问题的思考方式,也称面向函数编程。函数式编程的本质是函数的组合。函数式编程语言中通常都会提供常用的map、reduce、filter等基本函数,这些函数是对List、Map集合等基本数据结构的常用操作的高层次封装,就像一个更加智能好用的工具箱。5.1 函数式编程简介函数式编程是关于不变性和函数组合的编程范式。
    来自:
    浏览:124
  • 函数式编程,真香

    所以我打算后面用 5 到 8 篇的篇幅,详细的介绍一下函数式编程的思想,基础、如何设计、测试等。今天这篇文章主要介绍函数式编程的思想。函数式编程有用吗?什么是函数式编程?函数式编程的优点。我这能这么跟你说,一旦你学会了函数式编程,这些问题迎刃而解,本来函数式编程就是这个思想,一旦你掌握了函数式,然后你再学习响应式编程那就比较容易懂了,这是我亲身体会的。可以看到函数式编程在开发中具有声明模式。为了充分理解函数式编程,我们先来看下几个基本概念。声明式编程纯函数引用透明不可变性声明式编程 函数式编程属于声明是编程范式:这种范式会描述一系列的操作,但并不会暴露它们是如何实现的或是数据流如何传过它们。这是一个语言缺陷,后面会介绍如何克服。总结使用纯函数的代码绝不会更改或破坏全局状态,有助于提高代码的可测试性和可维护性函数式编程采用声明式的风格,易于推理,提高代码的可读性。
    来自:
    浏览:328
  • Java 8的函数式编程学习

    Java 8的函数式编程学习 函数式编程语言是什么?函数式编程语言的核心是它以处理数据的方式处理代码。这意味着函数应该是第一等级(First-class)的值,并且能够被赋值给变量,传递给函数等等。非函数式编程语言中的函数式编程一种语言是不是函数式并不是非此即彼的状态,实际上,语言存在于图谱上。在最末端,基本上是强制函数式编程,通常禁止可变的数据结构。Clojure就是一种不接受可变数据的语言。另一个极端,当然,使用完全非函数式语言进行函数式编程是可能的,例如C语言,只要维持好合适的程序员准则和惯例。考虑到这一点,函数式编程应该被看作是有两个因素的函数,其中一个与编程语言相关,另一个是用该语言编写的程序:1)底层编程语言在多大程度上支持,或者强制函数式编程?除了以上这些,这个函数式语言能量的小集合很可能是所有大多数开发者日常开发所真正需要的。对于高级用户,还有(JVM或其它平台)其它语言,并且毫无疑问,将继续蓬勃发展。
    来自:
    浏览:330
  • JavaScript函数式编程

    JavaScript 是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、无类编程。除此之外,附录中还介绍了更多函数式JavaScript。本书内容全面,示例丰富,适合想要了解函数式编程的JavaScript程序员和学习JavaScript的函数式程序员阅读。
    来自:
    浏览:152
  • 函数式编程漫谈

    首先还是简单说下函数式编程是什么?它详细的解释可以参考维基百科。函数式编程的概念其实出来也已经好几十年了,我们能在很多编程语言身上看到它的身影。比如比较纯粹的Haskell,以及一些语言开始逐渐成为多范式编程语言,比如Swift,还有Kotlin,Java,Js等都开始具备函数式编程的特性。函数式编程和函数响应式编程可能很多做移动端开发的朋友会更多的听到这个概念,比如iOS开发上最早有ReactiveCocoa,后来又有了RxSwift,安卓上也有常见的RxJava等等。这里以ReactiveX(Rx)来说,最早由微软的架构师Erik Meijer领导的团队开发,目前各种版本几乎覆盖率主流的编程语言。 那么Rx和函数式编程的关系是什么呢?
    来自:
    浏览:500
  • 浅谈函数式编程

    这几天开始在 Java 开发中尝试函数式编程风格。所以就写点小东西来分享一下。2. 什么是函数式编程?在我看来函数式编程就是把函数作为一等公民来使用就是函数式编程。平常我们开发都是在处理数据。而函数式编程不是在写函数就是在写函数的路上。我们来看看 Java 中函数式编程的演进之路。我小时候玩过一种廉价的黑白屏游戏机,只能玩俄罗斯方块。这种是不可扩展的。而函数式编程一直沉浸于给我操作数据的方法中。面向对象最大优点是多态性和封装;函数式编程优势是抽象化和声明式命令风格,两者其实是正交,可互补的,可在同一程序中共存。争论是面向对象好还是面向函数好跟争论哪门语言好一样都是非常极端的。对于面向对象来讲:存在的并不一定都是对象,函数就是对象;对于函数式编程来说:存在的并不总是纯粹的,副作用总是真实存在的。总结今天简单表达了我对函数式编程的一些理解,对于习惯了面向对象的 Java 开发者来说,理解函数式编程并不容易。它不仅仅有 Lambda 和匿名函数!更多的是一种思想。
    来自:
    浏览:149
  • 函数式编程 -> Lambda

    一、函数式编程  函数式编程,同面向对象编程、指令式编程一样,是一种软件编程范式,在多种编程语言中都有应用。百科词条中有很学术化的解释,但理解起来并不容易。不过,我们可以借助于数学中函数的概念,来理解函数式编程的要义所在。类比到程序语言中来,所谓函数式编程,就是让我们以数学中函数映射的思想来编写出函数式的程序代码,让代码着重于输入和输出,而底层的映射处理逻辑,你完全可以当黑盒看待,这样,我们的业务关注点会更加清晰;而且,在Java中,提到函数式编程,最先想到的肯定是Lambda表达式了(PS:切忌把Lambda表达式和函数式编程划等号,Lambda表达式只是符合这种函数式编程风格的匿名函数而已)。好啦,对于函数式编程讲解的的开篇,算是讲完了。但这仅仅是开始,对于函数式编程这样一种新的编程尝试,还有很多值得学习和讨论的地方。
    来自:
    浏览:174

扫码关注云+社区

领取腾讯云代金券