pure-function相关内容

纯函数:“无副作用"吗?暗示“总是相同的输出,给定相同的输入"?

定义一个函数为pure的两个条件如下: 无副作用(即只允许更改本地范围) 给定相同的输入,总是返回相同的输出 如果第一个条件总是成立,那么第二个条件是否也有不成立的时候? 即真的只有第一个条件才有必要吗? 解决方案 以下是一些不改变外部作用域但仍被视为不纯的反例: function a() { return Date.now();} function b() { ..

为什么是“纯"?称为“纯"的函数?

纯函数是一个没有副作用的函数——它不能做任何类型的 I/O,也不能修改任何东西的状态——而且它是引用透明的——当使用相同的输入多次调用时,它总是给出相同的输出. 为什么用“纯"这个词来描述具有这些特性的函数?谁首先以这种方式使用“纯"这个词,什么时候?还有其他词的意思大致相同吗? 解决方案 为了回答您的第一个问题,数学函数通常被描述为“纯"某些特定变量.例如: 第一项是x的纯函 ..

我可以在 TypeScript 中将函数限制为纯函数吗?

有没有办法让函数成为 pure (因此不接受 TypeScript 中的非纯函数?如果是,是哪个? 解决方案 您可能能够编写一些 TSLint 规则来捕获大多数常见情况(例如,访问外部变量),但检查类似的内容是几乎不可能,所以没有办法真正 100% 知道. 您(和您的团队)仍然必须遵守纪律. ..
发布时间:2021-12-15 15:40:45 前端开发

Haskell:陷入 IO monad

我正在尝试使用 haskell-src-exts 包中的 parseFile 函数解析文件. 我正在尝试使用 parseFile 的输出,这当然是 IO,但我不知道如何绕过 IO.我找到了一个函数 liftIO 但我不确定这是否是这种情况下的解决方案.这是下面的代码. import Language.Haskell.Exts.Syntax导入 Language.Haskell.Exts导入 ..
发布时间:2021-12-14 12:22:04 其他开发

React reducer 必须是纯函数吗?

我写了一个 UI 元素作为函数组件,它使用 React 的 userReducer 钩子,它似乎运行没有错误. useReducer 引用了我写的一个函数(想象中叫做 reducer): const [state, dispatch] = React.useReducer(reducer, inputData,(输入数据) =>初始状态(输入数据)); 有state数据,由reduce ..
发布时间:2021-07-03 19:27:46 其他开发

什么策略将非纯函数转换为JavaScript中的纯函数

我开始学习JavaScript的函数式编程.这可能是一个愚蠢的问题,但是我正在尝试解决以功能方式编写的非纯函数的问题. 我的问题是在功能编程范例中应采用什么策略来实现这一目标. const crypto = require('crypto');const crypto =(data,publicKey)=>{如果(publicKey === undefined)抛出'Missing pu ..
发布时间:2021-05-09 20:20:52 前端开发

如何判断F#函数是否纯净?

假设我有以下两个F#函数: let sq x = x*x let tm = DateTime.Now 很明显,sq是纯净的,因为它总是为给定的输入返回相同的值,而tm是不纯的,因为每次调用它都会返回不同的值. 通常,有一种方法可以确定F#中的某个特定函数是纯函数还是不纯函数,而无需分析其功能,换句话说就是逐行读取它? 或者,有一种方法可以给函数添加注释,以告诉编译器在编写函 ..
发布时间:2020-07-24 23:29:12 其他开发

我可以限制一个函数在TypeScript中是纯函数吗?

是否有一种方法可以仅将函数设为纯"(因此不接受TypeScript中的非纯函数?如果是,那是什么? 解决方案 您也许可以编写一些TSLint规则来捕获大多数常见情况(例如,访问外部变量),但是检查类似的内容是几乎是不可能的,因此实际上无法知道100%. 您(和您的团队)仍然必须受到纪律处分. ..
发布时间:2020-07-24 23:28:59 前端开发

这个纯函数如何能够修改非私有状态?

TDPL,第2页. 167: ,只要函数中的可变状态完全是暂时的(即分配在堆栈上)和 private (即没有通过引用传递给那些可能会污染它),那么该功能可以被认为是纯函数. import std.stdio : writeln; struct M{ int[4] _data; pure ref int opIndex(size_t i){ return _data[i]; ..
发布时间:2020-07-24 23:28:57 其他开发

为什么纯还原剂在redux中如此重要?

纯还原剂没有副作用,可以延长旅行时间.它们使对应用程序行为的推理更加容易. 这对我来说很直观.但是我不能说出为什么纯净的还原剂会导致这些积极的非功能性属性. 有人可以帮助我阐明为什么使减速器无副作用使应用程序行为的推理更容易吗? 是因为可以保证运行化径器后具有完全相同的状态吗? 如果是这样,那么即使是副作用(即非纯的)还原剂也肯定可以具有此特性? 解决方案 是因 ..
发布时间:2020-07-24 23:28:55 前端开发

纯功能:不会产生“无副作用"吗?暗示“总是相同的输出,给定相同的输入"?

将函数定义为pure的两个条件如下: 没有副作用(即仅允许更改本地范围) 给定相同的输入,总是返回相同的输出 如果第一个条件始终为真,那么第二个条件是否不存在? 即真的只有第一个条件才需要吗? 解决方案 以下是一些反例,它们不会改变外部范围,但仍然被认为是不纯的: function a() { return Date.now(); } function b() ..

Haskell中的打印是纯功能吗?

在Haskell中print是纯函数吗?为什么或者为什么不?我认为不是,因为它并不总是返回与纯函数相同的值. 解决方案 类型IO Int的值实际上不是Int.它更像是一张纸,上面写着“嘿,Haskell运行时,请以这种方式产生一个Int值".这张纸是惰性的,即使运行时最终生成的Int是不同的,也保持不变. 您可以通过将纸张分配给main来将其发送到运行时.如果IO动作永远不会妨碍ma ..
发布时间:2020-05-10 21:46:09 其他开发

打印Haskell是一个纯函数?

在Haskell中打印纯函数;为什么或者为什么不?我认为这不是因为它不会总是返回与纯函数相同的值。 解决方案 code> IO Int 并不是真正的 Int 。它更像是一张纸,上面写着“嘿哈斯克尔运行时,请以这样和那样的方式产生 Int 值”。即使运行时最终产生的 Int s不同,这张纸也是惰性的并且保持不变。 main ,您可以将该纸张发送到运行时。如果 IO 动作永远不会以 ma ..
发布时间:2018-06-05 11:05:02 其他开发

在D中返回函数的函数的纯函数

纯Func multiplyFunctions()函数返回一个纯函数,返回两个其他纯函数的乘法: Func,Real)(范围为const Func f1,范围为const Func f2) { return(Real a){return f1(a)* f2(a); }; } 不幸的是,我遇到了问题,头号问题,我想声明f1和f2是纯函数/委托/类与opCall定义...这是必 ..
发布时间:2018-04-18 16:08:57 其他开发

是一个调用Math.random()纯函数的函数吗?

函数test(min,max){ return Math.random ()*(max - min)+ min; } 我的理解是纯函数遵循以下条件: b $ b 它返回一个从参数计算出来的值 除了计算返回值 如果这个定义是正确的,我的函数是一个纯函数吗?或者,我的理解是什么定义了一个纯函数是不正确的? 解决方案 不,不是。给定相同的 ..
发布时间:2018-04-17 11:15:51 前端开发

为什么“纯”称为“纯”的函数?

纯函数是没有副作用的函数 - 它不能做任何类型的I / O,它不能修改任何事物的状态 - 而且它是引用透明的 - 当用相同的输入多次调用时,它总是给出相同的输出。 为什么用“纯”这个词来描述具有这些属性的函数?谁首先以这种方式使用“纯”这个词,什么时候?还有其他的词意味着大致相同的事情吗? 纯粹“就某些指定变量而言。例如: 第一项是纯函数 x ,第二项是纯函数 y 因此,我认为您 ..