side-effects相关内容

函数参数求值和副作用

C++20标准规定函数调用,7.6.1.3/8: 参数的初始化(包括每个关联值计算和副作用)相对于任何其他参数的初始化是不确定的。 不确定排序(相对于非排序)可确保影响相同内存区域的副作用不是未定义的行为。Cp首选项gives the following examples: f(i = -2, i = -2); // undefined behavior until C++17 ..

带有复选框问题的 CListCtrl

列表控件被定义为资源上的单选. 问题 1 我想在 CListCtrl 的第一列的标题上设置一个复选框.在 OnInitDialog 我有 m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);CString s;s.LoadString(IDS_CO ..
发布时间:2022-01-12 14:32:05 C/C++开发

什么是具有副作用的表达式,为什么不应该将它们传递给宏?

我在 C How to Program 一文中看到了一个语句: “具有副作用的表达式(即,变量值被修改)不应传递给宏,因为宏参数可能会被多次计算.". 我的问题是什么是具有副作用的表达式,为什么不应该将它们传递给宏? 解决方案 经典例子是计算两个值的最大值的宏: #define MAX(a, b) ((a) > (b) ? (a) : (b)) 现在让我们像这样“调用"宏: ..
发布时间:2022-01-11 19:26:58 其他开发

在纯函数式编程中是否可能产生副作用

我一直试图围绕函数式编程进行一段时间.我查阅了 lambda 演算、LISP、OCaml、F# 甚至组合逻辑,但我遇到的主要问题是 - 你如何做需要副作用的事情,例如: 与用户互动, 与远程服务通信,或 使用随机抽样处理模拟 不违反纯函数式编程的基本前提,即对于给定的输入,输出是确定性的? 我希望我说的有道理;如果不是,我欢迎任何帮助我理解的尝试.提前致谢. 解决方案 ..
发布时间:2022-01-02 14:01:48 其他开发

为什么引发异常会产生副作用?

根据 副作用 的维基百科条目,引发异常构成副作用.考虑这个简单的 Python 函数: def foo(arg):如果不是 arg:raise ValueError('arg 不能为 None')别的:返回 10 使用 foo(None) 调用它总是会遇到异常.同样的输入,同样的输出.它是引用透明的.为什么这不是纯函数? 解决方案 只有当您观察到异常并根据异常做出改变控制流的决定时,才 ..
发布时间:2022-01-02 13:57:57 其他开发

CListCtrl 带复选框问题

列表控件被定义为资源的单一选择. 问题 1 我想在我的 CListCtrl 的第一列的标题上有一个复选框.在 OnInitDialog 我有 m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);CString s;s.LoadString(IDS_ ..
发布时间:2021-12-23 08:26:42 C/C++开发

“有效"到底是什么?意思是

我一次又一次地读到有效这个词,但我仍然无法清楚地定义它的含义.我假设正确的上下文是有效的计算,但我也看到了术语有效的值) 我曾经认为有效意味着有副作用.但是在 Haskell 中没有副作用(除了某种程度上的 IO).仍然到处都是有效的计算. 然后我读到 monad 用于创建有效的计算.我可以在 State Monad 的上下文中理解这一点.但是我没有在 Maybe monad 中看到任 ..
发布时间:2021-12-14 12:30:10 其他开发

Jetpack Compose 中的副作用

我明白除了 composable 中的 composition 行为之外,所有其他行为都是副作用.那么,对于 TextField,更改 onValueChange 中的 TextFieldValue 是否有副作用?另外,在 composable 中显示 Toast 消息是否有副作用? 解决方案 让我们先了解一些关于函数式编程的术语 Idempotent - 意味着调用相同的函数 n ..
发布时间:2021-11-02 22:57:02 移动开发

简单的 Vue.js 计算属性说明

我对 Vue.js 并不陌生,但我正在再次浏览文档,试图找出我第一次错过的任何内容.我在使用计算属性的基本示例部分中看到了这个声明: 您可以像普通属性一样将数据绑定到模板中的计算属性.Vue 知道 vm.reversedMessage 依赖于 vm.message,所以它会在 时更新任何依赖于 vm.reversedMessage 的绑定vm.message 变化.最好的部分是我们以声明方式 ..
发布时间:2021-09-20 19:36:58 前端开发

C中的副作用是什么?

维基百科说: 在计算机科学中,如果操作、函数或表达式在其本地环境之外修改某些状态变量值,则称其具有副作用,也就是说具有除了向操作的调用者返回一个值(主要效果)之外,还有一个可观察的效果. 但是我们如何访问一个变量在其本地环境之外,有没有人能通俗地解释一下这种情况、副作用、主效应和序列点? 解决方案 一个函数是(应该)一个黑盒子,其中返回值,或者通过引用传递的变量的值,应该是唯一 ..
发布时间:2021-07-16 21:39:26 其他开发

模拟副作用只有 X 次

我有一个芹菜重试任务,我想测试它是否重试直到成功.使用 mock 的 side_effect,我可以在一定数量的执行中失败,然后通过 None,清除副作用.但是,任务调用的方法在那个时候不会执行,它只是没有异常.有没有办法清除副作用,并且仍然让被模拟的方法正常执行? 我可以测试它被称为“x"次(即重复直到成功),然后在单独的测试中,断言它做了应该做的事情,但想知道是否有办法做到这两者一个测试 ..
发布时间:2021-06-03 18:41:03 Python

是否在Java调试中应用了toString副作用?

在Eclipse中调试Java代码时,如果单击变量名之一,则将打印该对象.对象的toString()方法用于打印它.如果某些toString方法有副作用,而我单击该类型的变量,是否会应用其toString的副作用(并且毫无疑问会弄乱一切)? 解决方案 我认为您回答了自己的问题.每当您在调试中或以其他方式调用 toString 时,都会发生所有副作用.这就是为什么您应该避免在toString ..
发布时间:2021-04-29 20:31:05 Java开发

如果忽略结果,则在编译时不调用Constexpr函数

我正在研究 constexpr 函数的一些相当奇怪的代码覆盖结果(我使用的代码覆盖工具无法检测编译时调用),并注意到一些constexpr 函数被称为 runtime 函数,如果未存储函数调用的结果,则称为 . 似乎,对于 constexpr 函数或方法,如果将调用结果存储在(在运行时变量[emphasis !!!]或 constexpr 中)变量),则该调用是编译时调用(只要参数是编译时) ..
发布时间:2021-04-22 20:43:29 C/C++开发

如何记录Java副作用

是否有针对包含副作用的Java/JVM语言方法编写javadocs的标准或最佳实践? 我定义了一个void方法,该方法修改了方法参数之一,但不知道如何记录实际的返回值(因为没有实际的返回值). /** * @param obj - reference object * @return obj - obj.name is changed to 'hello' //TODO fig ..
发布时间:2021-02-10 19:14:47 其他开发

"pure x :: IO a"是纯值还是具有副作用的值?

给予 pure id v = v 持有,pure可以做任何可观察且不违反法律的事情吗? 如果我定义一个封装IO的类型并说产生一个新线程,那么GHC可以自由地优化它吗? 编辑:我终于意识到问题实际上是关于拥有非法IO实例的后果... 解决方案 GHC对类型类定律一无所知(与Idris或Coq不同),这些定律仅作为文档和编程约定存在.因此,实例可能是合法的,也可能 ..
发布时间:2020-11-22 07:29:46 其他开发

函数式编程的副作用

在《函数式编程》一书中,作者提到了以下副作用. 修改变量 就地修改数据结构 在对象上设置字段 引发异常或因错误而停止 打印到控制台或阅读用户输入 读取或写入文件 在屏幕上绘画 我只是想知道如果有副作用,怎么可能编写纯功能程序而无需读取或写入文件.如果是的话,功能界实现这一目标的通用方法是什么? 谢谢, 穆罕默德(Mohamed) 解决方案 正确回答此问题可能需 ..
发布时间:2020-11-11 18:41:39 其他开发

函数式编程:副作用实际上在哪里发生?

开始学习Haskell之后,即使阅读了大量文档,Haskell还是有些我不理解的地方. 我了解要执行IO操作,您必须使用将值包装在一种“黑匣子"中的"IO monad",因此使用IO monad的任何功能仍然是纯功能.好的,很好,但是IO操作实际上在哪里发生? 这是否意味着Monad本身不是纯粹的功能?还是在IO中实现了IO操作(例如用C语言实现),并将其“嵌入"在Haskell编译器 ..
发布时间:2020-11-11 18:41:32 其他开发

将对象传递给C ++函数时的副作用

我已经阅读了 C ++:完整的参考书预订了以下内容 即使通过普通的 按值调用参数传递机制将对象传递给函数,从理论上讲,该机制可以保护 并隔离调用参数,但侧面$ b仍然可能可能会影响 参数的对象发生$ b效果。例如,如果用作参数的对象分配了 内存并在销毁该内存时释放该内存,则当析构函数为 时,该函数内部的本地副本 将释放相同的内存。这将损坏原始对象,并实际上使 失去作用。 ..
发布时间:2020-10-19 21:24:16 C/C++开发