scala学习笔记:高阶函数
scala> def power(y:Double)=(x:Double)=>Math.pow(x,y)
warning: there were 1 deprecation warnings; re-run with -deprecation for details
power: (y: Double)Double => Double
scala> val square=power(2)
square: Double => Double = <function1>
scala> val squareRoot=power(0.5)
squareRoot: Double => Double = <function1>
scala> square(10)
res0: Double = 100.0
scala> squareRoot(100)
res1: Double = 10.0
也可以定义成:
scala> def power = (x:Double)=> ((y:Double) => math.pow(x, y))
power: Double => Double => Double
scala> power(4)(3)
res8: Double = 64.0
也可以写成:
scala> :paste
// Entering paste mode (ctrl-D to finish)
def power(x:Double,y:Double) = math.pow(x, y)
def square=power(_:Double,2)
def squareroot(x:Double)=power(x,0.5)
square(3)
squareroot(3)
// Exiting paste mode, now interpreting.
power: (x: Double, y: Double)Double
square: Double => Double
squareroot: (x: Double)Double
res8: Double = 1.7320508075688772
柯里化之后:
def power(x:Double)(y:Double) = math.pow(x, y)
def square=power(_:Double)(2)
square(3)
def squareroot(x:Double)=power(x)(0.5)
squareroot(3)
power: (x: Double)(y: Double)Double
square: Double => Double
squareroot: (x: Double)Double
res7: Double = 1.7320508075688772
scala学习笔记:高阶函数的更多相关文章
- Python学习笔记 - 高阶函数
高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用以下 ...
- python学习笔记——高阶函数map()
满足以下两点中任意一点,即为高阶函数: 1.函数接收一个或多个函数作为参数 2.函数返回一个函数 1 描述 用函数和可迭代对象中每一个元素作为参数,计算出新的迭代对象 map() 会根据提供的函数对指 ...
- 学习python3高阶函数笔记和demo
python的高阶函数的定义是:一个函数接收另一个函数作为参数,这种函数就称之为高阶函数 举一个最简单的例子: def text(a,b,c): return c(a)+c(b) print( tex ...
- scala中的高阶函数
版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=332 排版乱?请移步原文获得更好阅读体验 1.scala中的函数 scala是一门面向对象和函数式编程相结合的语 ...
- Python笔记-高阶函数
1.函数式编程 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量. 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 传入函数 既然 ...
- python学习之高阶函数
filter函数:filter()为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中 list = filter(调用函数名,可迭代对象)——调用函数名自动传参— ...
- python进阶学习之高阶函数
高阶函数就是把函数当做参数传递的一种函数, 例如: 执行结果: 1.map()函数 map()接收一个函数 f 和一个list, 并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 l ...
- scala学习笔记(7):函数(1)
函数是Scala的第一公民! 1 基本定义 scala> def max(x: Int, y: Int): Int = { if (x > y) x else y } 跟着是括号里带有冒 ...
- scala学习笔记:理解函数
定义一个函数: scala> def foo(x:Int)=x*2 foo: (x: Int)Int 可以采用匿名参数: scala> def foo:((Int)=>Int) = ...
- scala 学习笔记四 匿名函数
1.介绍 Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体. 使用匿名函数后,我们的代码变得更简洁了. 下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数: var ...
随机推荐
- 【转载】 Linux用户态和内核态
[说明]转载自 http://my.oschina.net/liubin/blog/27795 究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分 ...
- Android实例-为程序创建快捷方式(未测试)
结果: 1.因为只有小米手机,没有三星手机,没法测试.如果哪位神测试过的话,记得M我哦,谢了. 实例代码: unit Unit1; interface uses System.SysUtils, S ...
- XMPP——Smack[5]文件传输及离线消息的获取
三天时间,赶在最后一下午实现了文件的传输,本来需要实现离线文件的发送的,一直没想好怎么弄,找openfire的离线文件插件没找到,后来想出一种方法,起服务器时起了一个系统用户,一直在线,当用户发送离线 ...
- SVN的版本日期
SVN还可以使用版本日期来指定某个版本,日期格式使用ISO-8601标准,一般是yyyy-mm-dd hh:mm:ss.当你指定一个日期,SVN会在版本库中找到最接近这个日期的版本. SVN对日期的解 ...
- 注入限制绕过<转>
突然想我们是否可以用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是针对AND与“'”号和“=”号过滤的突破,虽然有点进步的地方,但还是有一些关键字没有绕过,由于我不常入侵网站所以 ...
- Python 调用C++
1.C++代码提供Python需要的接口: #include "stdafx.h" #include <boost/python.hpp> #include <s ...
- 【翻译自mos文章】DBA_JOBS 和 DBA_JOBS_RUNNING 不同的结果的解释
DBA_JOBS 和 DBA_JOBS_RUNNING 不同的结果 參考原文: Different Results from DBA_JOBS and DBA_JOBS_RUNNING (Doc ID ...
- 区域医疗移动医疗影像解决方案2--基于FLEX的PACS
基于Flex的PACS和基于HTML5的PACS,都不是基于DICOM的WADO的方式,即所有的图像操作,移动.缩放.旋转.测量.伪彩.窗宽窗位调整等都是在本地浏览器能够完成,不用和服务器进行频繁的交 ...
- [AngularJS] Accessible Button Events
Often buttons need to be handled by JavaScript, and if done improperly it can lead to accessibility ...
- unity3d NGUI多场景共用界面制作
1创建单独编辑UI的unity场景 UIScene.unity 用来做UI面界 ,创建Resources文件存放UI界面的prefab,代码里动态load资源仅仅能从Resources目录载入 2创建 ...