纯函数

ROS-订阅与处理激光雷达scan话题 激光雷达通常有四个性能衡量指标:测距分辨率、扫描频率(有时也用扫描周期)、角度分辨率及可视范围。测距分辨率衡量在一个给定的距离下测距的精确程度,通常与距离真实值相差在5-20mm;扫描频率衡量激光雷达完成一次完整扫描的快慢,通常在10Hz及以上;角度分辨率直接决定激光雷达一次完整扫描能返回多少个样本点;可视范围指激光雷达完整扫描的广角,可视范围之外即为盲区。 阅读详情

原文:http://blog.youkuaiyun.com/hongweigg/article/details/44035283

英文:https://en.wikipedia.org/wiki/Pure_function

在计算机编程中,假如满足下面这两个句子的约束,一个函数可能被描述为一个纯函数:

  1. 给出同样的参数值,该函数总是求出同样的结果。该函数结果值不依赖任何隐藏信息或程序执行处理可能改变的状态或在程序的两个不同的执行,也不能依赖来自I/O装置的任何外部的输入(通常是这样的--看下面的描述)。
  2. 结果的求值不会促使任何可语义上可观察的副作用或输出,例如易变对象的变化或输出到I/O装置。


      该结果值不需要依赖所有(或任何)参数值。然而,必须不依赖参数值以外的东西。函数可能返回多重结果值,并且对于被认为是纯函数的函数,这些条件必须应用到所有返回值。假如一个参数通过引用调用,任何内部参数变化将改变函数外部的输入参数值,它将使函数变为非纯函数。

例如:
纯函数

  • sin(x),返回实数x的sin值
  • length(s),返回串s的大小
  • encrypt(k,d),运行一个使用key k 关于日期片d的确定加密算法


非纯函数

  • 返回当前天星期几的函数是一个非纯函数,因为在不同的时间它将产生不同的结果,它引用了一些全局状态。同样地,任何使用全局状态或静态变量潜在地是非纯函数。
  • random()是非纯函数,因为每次调用潜在地产生不同的值。这是因为伪随机数产生器使用和更新了一个全局的“种子”状态。加入我们修改它去拿种子作为参数,例如random(seed),那么random变为纯函数,因为使用同一种子值的多次调用返回同一随机数。
  • printf() 是非纯函数,因为它促使输出到一个I/O装置,产生了副作用。
DeepSmote:一种深度SMOTE方法 DeepSmote 一种全新的将深度学习与Smote相结合的过采样方法! 目前在许多领域已经被使用,值得大家关注学习! 阅读详情

相关推荐

[软考]系统架构设计师 备考经验分享(一) - 备考计划篇

前言 上周末刚刚结束了软考架构师的考试,自我感觉考的还可以,大概率是过了。 两次参加软考,一次中级嵌入式,一次高级架构师,都是备考不到两个月时间,尤其是架构师这次考试内容和本职工作有不小的差别,并且需要同时备考三个科目,在高强度地备考中感觉是摸索出到了一点软考的技巧与经验。 打算趁还记得,赶紧写几篇文章做下梳理总结,算是给将来自己考系分、高项或者其他考试做个记录,也希望能够帮到正在备考的大家。 先把第一步,个人的备考计划分享给大家。 自身情况分析 首先,请大家一定先明确三个问题,这三个问题会直接影响到你的

_ 6405

纯函数(pure function )

总是会看见 纯函数(pure function )这个名词,但是都不知道什么是纯函数,它与一般函数的区别是什么? 相同的输入,永远会得到相同的输出 Fure Function 的返回值,只能由其函数入参所决定,而不能有其他的干扰因素 例如: var number=3; function add ( n ) { return n+number; } 这里add函数的返回值不仅由...

xiaoxu的博客 4711

FOC无刷电机磁编码器机械角度与电角度自动对齐校准及电机极对数自动获取的方法

本文提出磁编码器机械角度与电角度自动对齐校准方法及电机极对数自动获取方案。通过通直流电流使转子定向,读取机械角度并计算电角度偏移量,实现精确对齐;同时利用低速旋转时检测反电动势过零点次数,结合机械角度变化量自动计算极对数。核心算法包括转子定向、偏移量计算、极对数推导等步骤,并提供了基于STM32的C语言实现代码。该方法适用于工业伺服、机器人等高精度控制场景,需注意负载安全、参数调整和误差处理。两种自动化流程可有效解决电机安装调试中的角度对齐和参数识别问题。

qq_29653575的博客 2496

纯函数(Pure functions)

理解纯函数的概念

frontendchen的博客 2168

实战解析:如何用Python逆向破解FastMoss的TikTok数据加密签名(附完整代码)

本文详细解析了如何用Python逆向破解FastMoss平台的TikTok数据加密签名机制,包括MD5加密算法和JS逆向分析。通过完整的Python代码示例,帮助开发者理解签名生成原理并实现自动化请求,提升数据获取能力。

weixin_30955617的博客 560

四足机械臂避坑指南:从URDF配置到逆运动学控制的完整流程

本文为四足机械臂(Loco-Manipulation)系统开发提供了一份详实的实战避坑指南。文章深入剖析了从URDF模型配置、核心控制循环设计到逆运动学(IK)求解与奖励函数构建的完整流程,重点讲解了如何避免关节命名错误、惯性参数设置不当、IK求解不稳定等常见陷阱,并强调了利用collision_bbox等可视化工具进行高效调试的方法,旨在帮助工程师构建稳定、高效的四足机械臂控制系统。

weixin_42509507的博客 192

什么叫pure function(纯函数)

在Knockout中,用到了pureComputer(),其原理来自于纯函数(pure function)。那么,什么叫纯函数呢? 纯函数 (来自:http://en.wikipedia.org/wiki/Pure_function)       在计算机编程中,假如满足下面这两个句子的约束,一个函数可能被描述为一个纯函数: 给出同样的参数值,该函数总是求出同样的结果。该函数结

hongweigg的专栏 1万+

Prompt Learning 简介

• Prompt Learning 可以将所有的任务归一化预训练语言模型的任务• 避免了预训练和fine-tuning 之间的gap,几乎所有 NLP 任务都可以直接使用,不需要训练数据。• 在少样本的数据集上,能取得超过fine-tuning的效果。• 使得所有的任务在方法上变得一致。

jxsdq的博客 1万+

纯函数:函数式编程的核心理念

本文深入探讨了纯函数在函数式编程中的核心地位。纯函数具有确定性(相同输入必得相同输出)和无副作用(不改变外部状态)两大特性,这使得代码更易预测、测试和维护。文章详细分析了纯函数的四大优势:可预测性、可测试性、并发安全性和易于优化,并通过Python示例展示了如何通过避免修改外部状态、使用不可变数据结构和隔离I/O操作来编写纯函数。同时,文章也客观指出纯函数的局限性,包括无法完全避免副作用、可能的性能开销和学习曲线问题。最后,通过数据处理、UI状态更新和并发编程三个实际案例,验证了纯函数在真实场景中的实用价值

你若盛开,清风自来 2198

Halcon实战:5分钟搞定工业零件中的圆孔检测(附完整代码)

本文详细解析了如何利用Halcon的hough_circle算法在5分钟内高效完成工业零件中的圆孔检测。通过优化图像采集、智能预处理和参数化边缘检测,解决了金属反光、油污干扰等工业场景常见问题,并提供了完整的代码示例和实战案例,显著提升检测精度和效率。

weixin_29061997的博客 240

DBeaver配置本地mysql-connector驱动文件

本文摘要:介绍了数据库驱动管理的基本操作步骤:1)新建驱动管理器,填写MySQL驱动名称、类名和类型;2)添加本地MySQL驱动文件;3)创建数据库连接并测试。适用于MySQL5.x和8.x版本,帮助用户快速配置数据库连接。

litlit023的专栏 1697

关于纯函数,pure function

纯函数是我新接触的一个概念,以前我写函数,基本上不会调用外部的参数,因此写的函数基本上都是纯函数,那么什么是非纯函数呢,我给大家举个例子。#include const int a=2; int add(int b); int main() { printf("%d",add(1)); } int add(int b){ return a+b; }我们可以看到,我在add函数中调用了一个外部

非完美世界 1274

innovus:InstPad、CellPad 、module padding、clock cell halo

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?site_num指的是padding的大小以site宽度为单位。

m0_61544122的博客 2028

复变函数论5-4-整函数与亚纯函数的概念2-亚纯函数3:超越亚纯函数【非有理函数的亚纯函数称为超越亚纯函数】

在zzz平面上除极点外无其他类型奇点的单值解析函数称为亚纯函数.亚纯函数族是较整函数族更一般的函数族.非有理函数的亚纯函数称为超越亚纯函数.例 5.201ez−1ez−11​z2kπik0±1±2⋯z2kπik0±1±2⋯其聚点z∞z=\inftyz∞是一个非孤立奇点. 故此函数不可能是一有理函数.整函数也看成是亚纯函数的一种特例.注 可去奇点既然可以除去后成为解析点, 在定义及定理的条件中,一般就都不提到它.例 5.21。

u013250861的博客 1783

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

什么是纯函数_以及为什么要用纯函数?

当我第一次听到 “纯函数 (Pure Function)” 这个术语的时候我很疑惑。常规的函数做错了什么?为什么要变纯? 为什么我需要纯的函数? 除非你已经知道什么是纯函数,否则你可能会问同样的疑惑。不过这个概念其实很简单。我们可以花个 5 分钟一起来看以下。 什么函数是纯的? 纯函数的定义是: 如果函数的调用参数相同,则永远返回相同的结果。它不依赖于程序执行期间函数外部任何状态...

hsany330的专栏 2122

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JavaScript----什么是纯函数

定义 简单来说,一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。这么说肯定比较抽象,我们把它掰开来看: 函数的返回结果只依赖于它的参数。 函数执行过程里面没有副作用。 const a = 1 const foo = (b) => a + b foo(2) // => 3 foo 函数不是一个纯函数,因为它返回的结果依赖于外部变量...

翾的博客 3万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

什么叫纯函数?

纯函数:就是一个函数的返回结果只依赖于它的参数,并且在执行过程中没有副作用,我们就把这个函数叫做纯函数。 重点: 函数的返回结果只依赖于它的参数 // 不是纯函数,依赖了外部变量a var a = 1 function add(b) { return a+b } add(1) // 2 // 是纯函数 function add(a, b) { return a+b } add(1, ...

Lee_taotao的博客 3955

什么是纯函数

纯函数的基本概念和作用说明示例一:基础纯函数示例二:对比非纯函数示例三:纯函数与数组操作示例四:纯函数在事件处理中的应用示例五:纯函数用于缓存优化在Web前端开发中,理解和掌握纯函数(Pure Function)的概念对于构建高效、可预测的应用程序至关重要。纯函数不仅能够提升代码的可读性和维护性,还能增强应用的性能和可靠性。本文将深入探讨纯函数的基本概念、作用及其在实际项目中的应用。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 1238

什么是纯函数?

纯函数的概念:一个函数的返回结果只依赖其参数,并且执行过程中没有副作用。 下面我们来分别说明一下概念中的两个条件。 返回结果只依赖其参数 返回值只和函数参数有关,与外部无关。无论外部发生什么样的变化,函数的返回值都不会改变。 // 非纯函数 返回值与a相关,无法预料 const a = 1 const foo = (b) => a + b foo(2) ...

你就是我的世界 1万+

纯函数学习 (一)什么是纯函数

纯函数学习 (一)什么是纯函数 1.前言: 纯函数的定义是这样的: 纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用。 所以我们可以看出纯函数的定义: 相同输入必定能得出相同输出。 函数执行过程中没有任何副作用。 下面让我们来围绕这两点来学习纯函数。 2.辨认纯函数 纯函数和非纯函数的辨认是很难的,写的时候我们就会会出现疑惑导致出现错误,这里我将举个例子...

huangssssx的专栏 1079

纯函数是什么?怎么合理运用纯函数?

前言 纯函数这个这个词我相信小伙伴们多多少少都听说过,它是函数式编程的基础。本文主要是对纯函数进行探讨,包括基本概念,优点,运用的经典案例以及我们日常该如何去合理的使用等等。 纯函数的概念 首先我们来看看纯函数的基本概念: 相同的输入,总是会的到相同的输出,并且在执行过程中没有任何副作用。 该怎么去理解上面的概念呢?我们要把上面这句话拆成两部分来看。 相同的输入,总是会得到相同的输出。 来看看下面的例子: let a = 1; function xAdd(x) { return x + a;

qq_42002487的博客 1350

JavaScript纯函数

在 JavaScript 的世界里,数组是处理数据集合的重要工具。而纯函数,作为一种编程范式,它不改变输入数据,也不依赖外部状态,只通过输入参数决定输出结果。这样的函数易于测试、易于理解,也更易于维护。

weixin_66128399的博客 1484

纯函数与非纯函数

纯函数(Pure Function)是这样一种函数——输入输出数据流全是显式(Explicit)的。 显式(Explicit)的意思是,函数与外界交换数据只有一个唯一渠道——参数和返回值;函数从函数外部接受的所有输入信息都通过参数传递到该函数内部;函数输出到函数外部的所有信息都通过返回值传递到该函数外部。 如果一个函数通过隐式(Implicit)方式,从外界获取数据,或者向外部输出数据,那么,该函数就不是纯函数,叫作非纯函数(Impure Function)。 隐式(Implicit)的意思是,函数通过参

m0_37538302的博客 1093

JavaScript 数组纯函数

1. 常用的数组 API forEach 遍历所有元素,item 对应的是元素的值,index 对应的是元素的位置 let arr = [4, 6, 8]; arr.forEach(function(item, index){ console.log(index, item) }) // 0 4 // 1 6 // 2 8 every 判断所有元素是否都符合条件 let arr = [4, 6, 8]; let result = arr.every(function(item, index

高先生的猫 1444

浅谈纯函数和纯函数的优缺点

纯函数概念 纯函数:相同的输入永远只会得到相同的输出,且没有任何可观测的副作用,相当于数学表达式中的y=f(X) loadsh是一个纯函数的功能库,提供了对数组、数字、对象、字符串、函数等操作的一些方法 //下面我们从 slice 和 splice 中认识一下到底什么时纯函数 const myArray = [1,2,3,4,5,6,7,8,9] console.log(myArray.slice(0,3))//[1,2,3] console.log(myArray.slice(0,3))//[1,

JAN_LIGHT的博客 1016

react的纯函数

** 外面的值不受里面的值的影响 ** reducer必须是纯函数是设计的? 1.redux 可以提供可预测化的状态管理 在一个应用中,所有的 state 都是以一个对象树的形式存在一个单一的 store 中,唯一改变 state 的办法就是触发 action,而 reducer 就是用来编写专门的函数决定每个 action 如何改变应用的 state 。 reducer 就是一个纯函数,接受旧的 state 和 action,返回新的 state (previousState, action) =>

weixin_43353869的博客 1561
上一篇: 浏览器默认行为
下一篇: 正则表达式入门
五月西瓜
博客等级 码龄12年 4粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值