上一篇文章提到了,今天又读到Lisp的一些内容 <为什么Lisp如此先进>ruanyifeng(Link).关于Lisp的八卦,可以参考我前面两篇文章 http://www.cnblogs.com/charlesblc/p/6110484.html  以及 http://www.cnblogs.com/charlesblc/p/6123411.html 先看一个 "格林斯潘第十定律"(Greenspun's Tenth Rule): "任何C或Fortran程序复…
    Lisp语言是第二古老的高级编程语言.许多的黑客和开发者对Lisp推崇备至,Paul Graham甚至说"编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平".     然而这样先进的语言在现在使用的编程语言从来没有排到前20,听说它的人不少,用的人却非常少.     许多人对Lisp语言的第一印象就是一层层的括号,很老的关于苏联黑客偷到Lisp源码的最后一页全是括号的笑话就不用再说了. 造成Lisp程序如此多括号的原因就是S表达式.所谓S表达式,是指一种以人类可读的…
从前面的整理中我们看出了,Lambda表达式其实是匿名内部类的一种简化,因此它可以部分取代匿名内部类. 1,Lambda表达式与匿名内部类存在如下相同点: 1),Lambda表达式与匿名内部类一样,都可以直接访问"effectively final"的局部变量,以及外部类的成员变量 2),Lambda表达式创建的对象与匿名内部类生成的对象一样,都可以直接调用从接口中继承的默认方法. 我们还是写一段代码来看一下吧: /** * @创建作者: LinkinPark * @创建时间: 201…
Swift 相比原先的 Objective-C 最重要的优点之一,就是对函数式编程提供了更好的支持. Swift 提供了更多的语法糖和一些新特性来增强函数式编程的能力,本文就在这方面进行一些讨论. Swift 概览 对编程语言有了一些经验的程序员,尤其是那些对多种不同类型的编程语言都有经验的开发者, 在学习新的语言的时候更加得心应手.原因在于编程语言本身也是有各种范式的, 把握住这些特点就可以比较容易的上手了. 在入手一门新的语言的时候,一般关注的内容有: 原生数据结构 运算符 分支控制 如果是…
学了那么久的函数式编程语言,一直想写一些相关的文章.经过一段时间的考虑,我决定开这个坑. 至于为什么选择C#,在我看来,编程语言分三类:一类是难以进行函数式编程的语言,这类语言包括Java6.C语言等.这类语言由于不支持匿名函数等特性,进行函数式编程会比较困难:一类是自称"函数式编程语言"的语言,包括Scala.Clojure.F#.Haskell等.这类语言比较重视函数式编程,它的教学资料通常会包含函数式编程知识,因此这些语言的使用者大多也都已经掌握了函数式编程技巧:还有一类编程语言…
1. 什么是函数式编程? 函数式编程是阿隆佐思想的在现实世界中的实现, 它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及异变物件. 函数式编程的最重要基础是λ演算.而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值),函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程.函数式编程的杀手锏正是当今世界上日益增长的并行性编程和元数据编程趋势.其主要思想就是把运算过程尽量写成一系列嵌套的函数调…
一.引言 javascript函数式编程在最近两年来频繁的出现在大众的视野,越来越多的框架(react,angular,vue等)标榜自己使用了函数式编程的特性,好像一旦跟函数式编程沾边,就很高大上一样,而且还有一些专门针对函数式编程的框架和库,比如:RxJS.cycleJS.ramdaJS.lodashJS.underscoreJS等.近年来随着技术的发展,函数式编程已经在实际生产中发挥巨大的作用了,越来越多的语言开始加入闭包,匿名函数等非常典型的函数式编程的特性,从某种程度上来讲,函数式编程…
函数是scala的重要组成部分, 本文将探讨scala中函数的应用. scala作为支持函数式编程的语言, scala可以将函数作为对象即所谓"函数是一等公民". 函数定义 scala源文件中可以定义两类函数: 类方法: 类声明时定义, 由类实例进行调用 局部函数: 在函数内部定义, 作用域只限于定义它的函数内部 这里只关注函数定义相关内容, 关于类的有关内容请参考面向对象的相关内容. scala使用def关键字定义函数: def test() { println("Hell…
匿名函数进阶 前一章已经说了匿名函数,匿名函数还可以和其他内置函数结合使用 1.map map():映射器,映射 list(map(lambda x:x*2,range(10))) #把range产生的数字映射进lambda函数里进行计算 结果: 注意:mapmap(function, sequence[, sequence, ...])接受的参数,第一个是函数,第二个,第三个可选参数也是序列 当第一个参数不为函数时: 因为把函数放进去,即代表要进行运算处理,设置为None即表示不做计算 说到这…
函数基础 一个函数就是将一些语句集合在一起的部件,它们能够不止一次地在程序中运行.函数的主要作用: 最大化的代码重用和最小化代码冗余 流程的分解 一般地,函数讲的流程是:告诉你怎样去做某事,而不是让你使用它去做某事. Python 中的 def 语句实际上是一个可执行的语句:当它运行时,它会创建一个新的函数对象并将其赋值给一个变量名.因为它是一个语句,一个 def 可以出现任一语句可以出现的地方--甚至是嵌套在其他的语句中.例如,下面的使用也是合法的: test = ... if test: d…