FIRST CLASS FUNCTION

最近在学习函数式编程,碰到了一个概念,叫 first class function,以前从来没听过,后来看了 R大(RednaxelaFX,偶像)的博客有写到

类型:规定了变量可以取的值得范围,以及该类型的值可以进行的操作。根据类型的值的可赋值状况,可以把类型分为三类

  • 1、一级的(first class)。该等级类型的值可以传给子程序作为参数,可以从子程序里返回,可以赋给变量。大多数程序设计语言里,整型、字符类型等简单类型都是一级的。
  • 2、二级的(second class)。该等级类型的值可以传给子程序作为参数,但是不能从子程序里返回,也不能赋给变量。
  • 3、三级的(third class)。该等级类型的值连作为参数传递也不行。

在scala中,函数是可以作为参数来传递并且返回的,所以scala中的函数就是first class function

在java8中,增加了lambda表达式,实际上lambda表达式是一个function literal,可以作为参数传递,但是不能赋值给变量,所以只能成为second class function.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,967评论 0 38
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • 1.办公桌布局 办公桌布局的原则:每个抽屉所放物品固定;物品用完后放回原处;下班前整理桌面。在考虑办公桌布局时,应...
    终身学习的细嗅蔷薇阅读 893评论 0 6
  • 愿那不曾述说的 风可以告诉你 或优雅,或狂欢 愿那不可释怀的 海可以溶解它 或平静,或翻腾 从此, 心,与忠诚连接...
    树溪小姐阅读 138评论 0 0