网站大量收购闲置独家精品文档,联系QQ:2885784924

Scala中的函数式特征.PDF

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Scala 中的函数式特征 ADC 2013 关于我 •  王宏江,花名:宏江 •  Blog:hp:// •  经历: –  Java : 10y+ –  Scala : 2y+ –  十年工作经验,2009年加入阿里,曾在阿里巴巴中 文站和担任架构师,现在中间件稳定 性平台部门 –  Scala布道者 –  业余马拉松爱好者 说明 •  内容 1) Scala 中的函数式的特征 2) Scala类型系统中的函数式特征 •  交流:hps:///CSUG/csug/ •  旺旺群: Scala交流和答疑:sugsug 函数式语言 纯函数式语言 非纯函数式语言 静态类型 动态类型 Haskell Miranda Clean ML OCaml Scala F# Lisp Scheme Erlang 关于Scala语言 面向对象与函数式被看成一个硬币的两面,Scala试图将这两⾯融合起来 怎么理解这两种风格? 命令式与函数式 在 《程序设计语言—实践之路》一书中 将“面向对象”与“面向过程”都归类为“命令式”语 言 命令式与函数式 命令式与函数式 •  图灵机/冯诺依曼体系 –  其运算可看做: –  通过修改内存来反映运算的结果。 –  (用命令修改状态) •  Lambda演算(λ calculus)形式 –  连续运算(基于函数)得到结果 •  函数式程序是跟值打交道的,而不是跟状 态打交道的。它们的工具是表达式,而不 是命令。 — 《ML for the Working Programmer》 值 vs 状态 副作用(side effect) Scala 的做法 •  同时支持val和var体现了scala的“平衡”也可 以说是“圆滑” •  鼓励使用val ,但并不排斥var ;实际编码中 val 占大多数。 函数式是面向表达式的 Scala 中的表达式 •  1) 所有的表达式都有值 •  2) 除了赋值和函数调用表达式,内置的几个 表达式只有:if,while,for,try,match •  3) 块表达式{…}是基本表达式的组合,它的值 是最后一个表达式的值。 Scala 中的表达式 •  一些表达式的值: 1) a=1; 2) while(a100){print(a)} 3) if(a2) 1; •  赋值表达式、while表达式的值是Unit类型,它的值 是唯一的: () •  if表达式缺乏else的话,不符合条件则返回Unit类 型的();即上面相当于:if(a2) 1 else () 赋值语句的注意点: 不同于java : 1)while( (line = readLine() ) != null ) 不起作用,前边的 line = readLine() 得到的是Unit 类型值 2 )x=y=1; // y=1; x=() y=1表达式的结果是()

文档评论(0)

Lxq3610 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档