Scala高阶函数 2(以函数作为返回值,函数柯里化,应用函数)
package com.wyh.day01
object ScalaFun4 {
def main(args: Array[String]): Unit = {
/**
* 以函数作为返回值
*/
def A(s: String): String => String = {
def B(s1: String): String = {
s + "\t" + s1
}
B
}
println(A("Java")("BigData"))
println("=" * 100)
/**
* 函数柯里化
*/
def A1(s: String)(s1: String): String = {
s + "函数柯里化" + s1
}
println(A1("java")("spark"))
println("=" * 100)
/**
* 应用函数
*/
def C(s1: String, s2: String): String = {
s1 + "应用函数" + s2
}
println(C("Java", "spark"))
println(C("Java", "hadoop"))
println(C("Java", "Hbase"))
println("=" * 100)
val function = C("Java", _: String)
println(function("Hive"))
println(function("HDFS"))
println(function("mapreduce"))
}
}
Scala高阶函数 2(以函数作为返回值,函数柯里化,应用函数)的更多相关文章
- 浅析 JavaScript 中的 函数 currying 柯里化
原文:浅析 JavaScript 中的 函数 currying 柯里化 何为Curry化/柯里化? curry化来源与数学家 Haskell Curry的名字 (编程语言 Haskell也是以他的名字 ...
- JavaScript之函数柯里化
什么是柯里化(currying)? 维基百科中的解释是:柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术.意思就是当函 ...
- 理解运用JS的闭包、高阶函数、柯里化
JS的闭包,是一个谈论得比较多的话题了,不过细细想来,有些人还是理不清闭包的概念定义以及相关的特性. 这里就整理一些,做个总结. 一.闭包 1. 闭包的概念 闭包与执行上下文.环境.作用域息息相关 执 ...
- JS高阶函数与函数柯里化
高阶函数 满足下列条件之一的函数: 函数作为参数被传递(如回调函数): 函数可以作为返回值输出: 一些内置高阶函数的例子: Array.prototype.map map()方法通过调用对输入数组中的 ...
- JS的闭包、高阶函数、柯里化
本文原链接:https://cloud.tencent.com/developer/article/1326958 https://cloud.tencent.com/developer/articl ...
- Java函数式编程:二、高阶函数,闭包,函数组合以及柯里化
承接上文:Java函数式编程:一.函数式接口,lambda表达式和方法引用 这次来聊聊函数式编程中其他的几个比较重要的概念和技术,从而使得我们能更深刻的掌握Java中的函数式编程. 本篇博客主要聊聊以 ...
- js高阶函数应用—函数柯里化和反柯里化(二)
第上一篇文章中我们介绍了函数柯里化,顺带提到了偏函数,接下来我们继续话题,进入今天的主题-函数的反柯里化. 在上一篇文章中柯里化函数你可能需要去敲许多代码,理解很多代码逻辑,不过这一节我们讨论的反科里 ...
- Scala 学习之路(十)—— 函数 & 闭包 & 柯里化
一.函数 1.1 函数与方法 Scala中函数与方法的区别非常小,如果函数作为某个对象的成员,这样的函数被称为方法,否则就是一个正常的函数. // 定义方法 def multi1(x:Int) = { ...
- Scala 系列(十)—— 函数 & 闭包 & 柯里化
一.函数 1.1 函数与方法 Scala 中函数与方法的区别非常小,如果函数作为某个对象的成员,这样的函数被称为方法,否则就是一个正常的函数. // 定义方法 def multi1(x:Int) = ...
- JavaScript函数柯里化的一些思考
1. 高阶函数的坑 在学习柯里化之前,我们首先来看下面一段代码: var f1 = function(x){ return f(x); }; f1(x); 很多同学都能看出来,这些写是非常傻的,因为函 ...
随机推荐
- docker启动所有容器命令
启动所有容器 docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) 关闭所有容器 docker stop $(docker ps ...
- 连续6年夺冠 6项细分领域第一,中电金信持续领跑中国银行业IT解决方案市场
7月9日,工信部赛迪顾问发布<2023年度中国银行业IT解决方案市场分析报告>(简称<报告>).中电金信以7.38%的市场份额再度蝉联2023中国银行业IT解决方案市场份额 ...
- 2024年1月Java项目开发指南15:vue3+AntDesignVue 设计页面
考虑到有的同学对vue3不熟悉,因此,我把ControlView.vue这个页面清空,我们从0开始写. <template style="width: 100%"> & ...
- Linux安装JDK,解压报错:gzip: stdin: not in gzip format
问题描述 在Linux安装JDK tar -zxvf 命令解压时,报错,无法解压 报错内容: gzip: stdin: not in gzip format tar: Child returned s ...
- Qt编写视频监控显示安卓版
一.前言 之前就对代码的兼容性做了很好的处理,所以只要开发环境正常,基本的在其他系统比如手机端或者嵌入式linux上重新编译代码即可,最大的难点变成了如何交叉编译对应系统的ffmpeg库,这个在网上有 ...
- 记一次 .NET某工业视觉软件 崩溃分析
一:背景 1. 讲故事 前两天给训练营里的一位学员分析了一个dump,学员因为弄了一整天也没找到祸根,被我一下子弄出来了,极度想看看我是怎么分析的?由于在微信上不能一言两语表尽,干脆写一篇文章出来详细 ...
- AICA第6期-学习笔记汇总
AICA第6期-学习笔记汇总 AICA第六期|预科班课程 1.<跨上AI的战车> 2.<产业中NLP任务的技术选型与落地> 3.<计算机视觉产业落地挑战与应对> 4 ...
- Windows安全加固(三)
五.网络安全配置 协议安全 1.SYN攻击保护 指定触发SYN洪水攻击保护所必须超过的TCP连接请求数阈值为5:指定处于SYN_RCVD状态的TCP连接数的阈值为500,指定处于至少已发送一次重传的S ...
- Diary -「PKUSC 2022」浅谈一类 emo 文学在 OI 游记中的运用
我突然发现这是我第一次完成这样一篇游记-- 一篇记录了绝对意义上"爆炸"的游记. SC 的前几天,我被一些奇怪的理由说服停课.省选已经过去了吧,机房里除了我全是省队.不 ...
- R语言系列—Rstudio简介和安装
同学们,大家好,今天继续更新R语言系列.今天我们开始讲R语言的集成开发环境(IDE)-Rstudio,这里会对Rstudio及其安装进行介绍,感兴趣的同学可以重点关注一下. Rstudio简介 Rst ...