函数式编程

来个链接 [ 函数式编程 ]

在函数式编程里面,方法是方法,函数是函数,两者不同。

函数可以作为参数传递给方法 .

package com.msym

/**
  * Created by msym on 2017/7/4.
  * 函数式编程
  */
object Demo {
  def main(args: Array[String]): Unit = {
    val res1 = m1(fun1, 10, 20)
    println(res1)
    val res2 = m1(fun2, 10, 20)
    println(res2)

  }
  //定义一个方法,接收三个参数:一个函数(仅仅是函数的签名),另外两个是Int类型(函数运行需要的参数)
  def m1(fun : (Int,Int) => Int, x:Int, y:Int) = {
    //调用函数
    fun(x, y)
  }
  //定义一个函数fun1
  val fun1 = (x:Int, y:Int) => x + y
  //定义另个函数fun2
  val fun2 =(x:Int, y:Int) => x * y

  val fun3 = (x:Int) => x
}

 

函数式编程理解例子之一 :

函数代替了 Java 中的匿名类,

scala 中 Array 类的 map()方法, 接收一个函数, 用于对数组内容进行操作 :

package com.msym

/**
  * Created by msym on 2017/7/4.
  * http://www.cnblogs.com/daimajun/
  */
object Demo {
  def main(args: Array[String]): Unit = {
    val arr = Array("aaa", "bbb")
    //原数组
    for (x <- arr)
      println(x)
    //这里的toUpperCase可以加括号, 也可以不加
    val newArr = arr.map(x => x.toUpperCase())
    //新数组
    for (x <- newArr)
      println(x)
  }
}

    打印出:

image

对于上面的代码, 有一种更变态的方式, map()方法中传递的函数有所不同, 如下:

val newArr = arr.map(_.toUpperCase)

这里的下划线 "_" 代表的是每次数组中取出的元素, 然后将其转为大写.

转载于:https://www.cnblogs.com/daimajun/p/7226546.html

Python CalmAn(Calcium Imaging Analysis)神经生物学工具包安装及环境配置过程 CalmAn是一个用于大规模钙成像数据分析和行为分析的Python工具箱。CaImAn实施了大规模钙成像数据分析管道中所需的一套基本方法。针对多天的运动校正、源提取、尖峰反褶积和分量配准,实现了快速且可扩展的算法。它适用于双光子和单光子荧光显微镜数据,可以在批处理和在线模式下运行;CaImAn还包含一些分析摄像机行为的例程。 阅读详情

相关推荐

Label Studio保姆级教程:从零搭建医疗影像标注平台(DICOM格式支持)

本文提供基于Label Studio从零搭建医疗影像标注平台的保姆级教程。针对DICOM格式支持,详细阐述了环境部署、DICOM深度集成与预处理、团队协作权限管理以及质量审核闭环等核心环节,旨在构建一个高效、可落地的医疗AI数据标注解决方案,助力模型落地。

nft7creator的博客 302

【翻译】函数式编程中的领域驱动设计

原文:https://www.thoughtworks.com/insights/blog/architecture/domain-driven-design-in-functional-programming 领域驱动设计 (DDD) 提供了许多技术和模式来控制软件应用程序中的复杂性——即使这些是用函数式编程语言编写的。 不幸的是,用函数式编程语言实现 DDD 可以参考的资源非常有限。 即使...

顾宇的个人空间 306

抖音直播参数逆向实战:手把手教你用Python获取ttwid和x-bogus(附完整代码)

本文深入解析抖音直播接口的反爬机制,重点剖析核心防护参数ttwid和x-bogus的生成原理与作用。通过Python实战,手把手教你逆向获取ttwid、webid等关键参数,并构建稳定的数据采集方案,为开发者提供企业级数据获取能力。

weixin_29196891的博客 1043

高举Domain Specification,应用函数式编程

   我在《小议领域模型Domain Model》讨论了service和object,以及关联逻辑(咳咳,该文中的一些观点我已修正,合适的时候放上来)。关联逻辑就是本文讨论的重点--specification   一、从DDD(Domain Driven Design)说起    这个Specification来自DDD,DDD有对specification分为三个类型    1. Validat...

Anders小明的Blog 276

【人脸识别】基于 Gabor+SVM和PCA+SVM实现人脸识别matlab源码含 GUI

1 简介 随着经济的快速发展,互联网的普及,信息安全逐渐被人们所重视。人脸识别技术作为保护信息安全的重要手段之一,也逐渐被研究学者所重视。人脸识别作为计算机视觉技术和生物特征识别技术的一个重要分支,模式识别与人工智能的一个重要领域,其主要任务是对静态图像或动态视频进行识别。如何快速的正确的对人脸进行识别是目前人脸识别课题的一个难题。人脸识别算法的选取直接关系到人脸识别的识别率。 本文首先介绍了国内外人脸识别的发展现状,并对人脸图像预处理方法进行了详细阐述。图像预处理的方法有很多,主要包括:灰度变换、图像锐

qq_59747472的博客 1135

Pytorch实用教程:super(MLP,self).__init__()和super().__init__()有什么区别?

在 Python 中,super()函数用于调用父类(超类)的方法。它的使用在继承关系中非常常见,特别是在初始化继承自父类的属性时。在 PyTorch 中,这通常见于初始化nn.Module类的子类。super()的两种调用方式有微妙的差别,但在 Python 3 中常常用来达到同样的目的。这种写法在 Python 2 中非常常见。这里,super()被调用时需要指定当前类名(MLP)和当前实例(self。

若北辰 1025

使用函数式语言实践DDD

长期以来我都在实践OOP,进而通过OOP来实现DDD,通过面向对象的技巧来建立一个领域模型。OO的一些特性在建立领域模型时显得恰如其分,能否掌握OO的技巧,对创建领域模型有着至关重要的作用。 这篇文章为大家介绍一种常见的函数式架构,特别是如何通过函数式语言实现DDD,进而利用函数式组合的特性,创建函数pipeline。 软件架构是围绕着领域模型而做的若干设计,如果按照C4模型的定义,软件架构由下面四个级别的架构组成的: “System context”是最高层的架构,代表着整个系统 “Container”

IDEAL Garden 280

基于matlab不变矩的数字验证码识别系统

随着互联网技术的快速发展和应用,网络给人们提供了丰富的资源和极大的便利,但随之而来的是互联网系统的安全性问题,而验证码正是加强 Web 系统安全性的产物。全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,CAPTCHA)也是验证码的一个应用程序,可以区分用户是人类还是计算机智能单击对象。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 916

使用函数式编程语言F#编写DDD与CQRS应用

在近期的一次演讲中,Lev Gorodinski提出了一种观点,他认为对于领域驱动设计(DDD)来说,如果使用F#这种函数式编程语言来代替C#这种面向对象编程语言进行开发的话,能够带来两个额外的好处,这种方式不仅专注于行为,而且能够更多地使用声明方式来表现代码。讲座中使用的示例用到了包括事件溯源(Event Sourcing)和命令查询责任分离(CQRS)方面的技术。\Lev在过去的一年中在F#上...

cpongo5 229

计算图像哈希SHA-512

上述需要将lena.jpg放在当前目录下。

计算机视觉之光 960

【报错解决】OpenClaw 报错 `openclaw: command not found`:全局命令未加入系统 PATH 的深度排查与修复指南

在国产AI工具链开发中,OpenClaw作为关键命令行工具常出现command not found报错。本文深度分析该问题的根源——Linux环境变量PATH未包含用户级安装目录(~/.local/bin)。通过四种解决方案(临时PATH修改、永久配置、软链接、虚拟环境处理)和排错Checklist,揭示"命令存在却找不到"的本质是路径配置问题,特别适用于Docker/国产Linux/非root环境。文中强调理解Linux工具链机制对国产AI开发的重要性,并指出这是开发者掌握环境

博客 5381

基于函数式编程的领域驱动设计 - Scott Wlaschin

Scott Wlaschin 是一名开发人员、架构师和作家。他是流行的 F# 网站 fsharpforfunandprofit.com 的作者,以及 Pragmatic Bookshelf 出版的《Domain Modeling Made Functional》一书的作者。Scott 以其对函数式编程的非学术方法而闻名。以下是摘要,原文点击标题在一个经典的数学函数中,事物是不会改变的。例如,当你说二加二时,当你做加减乘除时,数字二不会改变。你会有一个新的数字,你不...

极道Jdon的技术博客 397

【CicadaPlayer】av_rescale_q 学习:转换PTS和Duration

参考 av_rescale_q()理解 大神时间基准的总结: AVPacket下的pts和dts以AVStream->time_base为单位(数值比较大),时间间隔就是AVStream->time_base。 大神:多种转换的总结 av_rescale_q用于计算Packet的PTS 如: if (pkt->pts != AV_NOPTS_VALUE) { pkt->pts = av_rescale_q(pkt->pts, m

突围 839

函数式编程介绍

历史来源 讲述历史来源,不喜欢的可以跳过。但是我个人认为这对理解有帮助。 在计算机的世界中,有两位巨擘对问题的可计算性做了模型化描述[4]。 一位是阿兰.图灵(Alan Turing),他提出的图灵机。计算机系的各种学科中都充斥着这个概念,假设有一个纸带和一个打孔机,然后有一套指令,能够控制打孔机在纸带上移动、能够读取当前位置是否打了孔、能够在当前位置打一个孔,这就是一个图灵机,假设一个问题

Mr.Phoebe的专栏 3万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【函数式编程】什么是函数式编程? C语言为何不是函数式语言?

什么是函数式编程? C语言为何不是函数式语言? 函数式语言有两个个主要的特点:1. 函数是“头等公民”。2. 数据的“immutability”. 操作的“无副作用”, 这规避了‘锁’。 函数式编程的函数是指数学上的函数:给定输入固定的输出,没有副作用。任何语言都可以用函数式的风格, 只是难易不同罢了。 比如函数 y = f(x). 和 函数 t = g(z); 在数学上,当 t在f(x)的定义域内时,可以组成复合函数 y=f(g(z)); 对于第二个问题,C为何不是函数式语言? 因为这种效果在C里面

我的笔记本 5459

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java函数式编程

函数式接口是只包含一个抽象方法的接口(不包括Object类中的方法)。这样的接口可以被隐式地转换为Lambda表达式。Stream API 提供了一种高效且易于使用的方式来处理集合(Collection)和数组。Stream操作分为中间操作(Intermediate Operations)和终端操作(Terminal Operations)。方法引用是Lambda表达式的一种简洁写法,它允许你直接引用已存在的方法或构造器。

2401_83447580的博客 1563

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

React中的函数式编程及函数式编程定义的深刻解读

React中的函数式编程及函数式编程定义的深刻解读 因为一直有了解函数式编程,也知道React是比较遵循函数式编程设计模式的框架,但是一直对函数是编程的定义和理解不是很清楚,到底函数式编程有上面优势,React如何遵循函数是编程,这些都是需要去仔细推敲的,可以让以后的代码写的更为优雅和合理 什么是函数式编程 函数是编程是一种设计思想,就像面向对象编程也是一种设计思想。函数式编程总的来说就是用...

有问题 ! 请留言 ! 4677

70、Python之函数式编程:一文搞懂函数式编程的核心概念

本文首先简单介绍了编程范式的概念,然后梳理了编程语言与编程范式的关系。在此基础上,引入了函数式编程这一范式,着重介绍了为什么要学习函数式编程。最后,系统梳理了函数式编程的核心概念,从而对后续学习函数式编程有一个纲领性的了解。

南宫理的日知录 1486

【C++ 函数式编程】深入解析 C++ 函数式编程<functional> 库

函数式编程(Functional Programming)是一种编程范式,它将计算视为数学函数的求值,并避免改变状态和可变数据。这种编程范式的核心是,你可以用纯函数(Pure Functions)来构建整个程序。纯函数是一种输出完全由输入决定的函数,没有任何副作用。这样的函数更容易测试和调试,因为它们不依赖于外部状态。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 2905

函数式编程简介

函数式编程

qq_37440870的博客 1411

函数式编程初探

诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。 不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。目前最当红的Python、Ruby、Javascript,对函数式编程的支持都很强,就连老牌的面向对象的Java、面向过程的PHP,都忙不迭地加入对匿名函数的支持。越来越多的迹象表明,函数式编程已经不再是学术界的最爱,开始大踏步地在业界投入实用。 也许继"面向对象编程"之后,"函数

不二的博客 1415

Java函数式编程

简介 什么是函数式编程 函数式编程是一种编程范式,即一切都是数学函数。在Java面向对象编程中,程序是一系列相互作用(方法)的对象,而在函数式编程中,程序会是一个无状态的函数组合序列。 函数是“第一等公民” “第一等公民”指的是函数和其他数据类型一样,处于平等的地位。可以赋值给变量、可以作为另一个函数的参数或者作为一个函数的返回值。比如 // 将两数相加的逻辑赋值给变量sum var sum = (a,b)->a+b; // 将函数作为另一个函数的参数 operation(sum) Java函数试

Mr_Yao 4096
上一篇: scala 有 + 运算符吗? - 03
下一篇: 半夜思考, Java 重载的实现
ddd77197
博客等级 码龄11年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值