问题标签 [pure-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
195 浏览

fortran - 以纯粹的方式在 Fortran 中度过时光?

我正在寻找一种纯粹的方式来访问时间信息。我考虑了标准编译器的内在函数和子例程(date_and_time, cpu_time, system_clock, ltime, ctime, ...),格式对我来说并不重要。我也想过MPI函数,但它和内在函数一样,都有不纯的函数。

这是一个最小的例子:

我得到一个逻辑错误:

因此,如果存在一种纯粹的获取时间信息的方法,或者如果不可能纯粹拥有它(可能是因为它必须使用 cpu 信息,由于我不知道的原因,这可能是线程不安全的),我正在徘徊。

也许,一个子问题,是否有一种解决方案可以强制编译器考虑date_and_time纯(或任何其他此类函数)?

0 投票
1 回答
1100 浏览

scala - 使用功能方式处理日志消息的最佳实践是什么

我是 Scala 编程的新手。我现在很困惑如何以异步和函数的方式声明一个 biz 方法,方法实现应该包含许多日志消息。作为一种不好的做法,我这样编写代码:

这很糟糕,因为实现是有副作用的,在这个地方记录一些东西。所以,我像这样更改方法声明:

使用Writer,消除了副作用,但代码不清楚:

  • 为什么作家回来了?Writer[Vector[String], Store]有比 更多的噪音Store,有什么办法可以避免样板代码并保持无副作用?
  • 写入log不是临时的!我应该构建一个字符串向量来保存消息,使用:+++操作来添加日志。我认为这不是临时日志记录,就像log.info(...)在任何地方写一样。
0 投票
2 回答
4380 浏览

javascript - 为什么纯 reducer 在 redux 中如此重要?

纯减速器没有副作用,并且可以实现时间旅行。它们使对应用程序行为的推理更容易。

这对我来说很直观。但我无法清楚说明为什么纯 reducer 会导致这些积极的非功能属性。

有人能帮我解释一下为什么让 reducer 无副作用可以更容易地推理应用程序行为吗?

是因为在运行 reducer 后保证您具有完全相同的状态吗?

如果是这样,那么即使是有副作用的(即非纯的)reducer 也肯定有这个属性吗?

0 投票
2 回答
895 浏览

javascript - 如果关键字在另一个列表中匹配,则使用 Ramda 过滤字符串列表

我有一个从 API 返回的 URL 列表:

我有一些类别要过滤我的 URL:

我希望只留下包含类别名称的 URL。例如,如果其中一个 URL 包含linksor news,我们希望保留它。

这是我到目前为止的(不工作的)代码想法。

我如何以更纯粹/ramda-esque 的方式调整它来过滤我的 URL 列表?

0 投票
4 回答
1411 浏览

javascript - Javascript数组映射函数保留数组先前项的记录

更新好的,所以我注意到,即使在isCategoryActive()函数中我只newCategories从 prop 分配值this.props.searchCategoriessearchCategories也会更改值,因此将其传递给连续数组项对isCategoryActive函数的调用。为什么会发生呢?更新

我正在基于 Wordpress REST API 在 React 中构建博客的前端,并且在检查帖子类别是否已被过滤后创建链接以过滤帖子类别时遇到问题。我遇到的问题是,即使我isCategoryActive在 map 函数中编写了一个纯函数,每个连续的类别链接 url 中都有每个前面的类别 id。我原以为每次调用纯函数时都会收到一个干净的结果,但在我的情况下并非如此。目前,wordpress 存储 3 个类别:id 为 1 的“未分类”、id 为 4 的“javascript”、id 为 10 的“第三类”

我试图在 render() 函数中获取 console.log(newCategories, url) 函数来记录:

[1] blog?categories=1
[4] blog?categories=4
[10] blog?categories=10

但目前它记录:

[1] blog?categories=1
[1,4] blog?categories=1,4
[1,4,10] blog?categories=1,4,10

我不知道它为什么要保留以前类别 ID 的记录。

这是代码:

0 投票
1 回答
1556 浏览

assembly - 汇编中的功能代码?(纯函数)

我目前正在研究 TASM 16bit 的国际象棋。

我最近了解了纯函数以及它们如何成为宇宙中最酷的东西,所以我的问题是,

是否应该竭尽全力使我的功能纯净且自给自足而没有副作用?

问题是这样做会使代码更加复杂,并且需要将更多参数传递给每个函数。

大家觉得我应该怎么做?感谢每个答案<3

==================================================== =========

额外问题:什么是函数式编程?

我的理解是,这一切都是关于编写没有副作用的自包含的纯函数。

这样代码就超级容易阅读和管理。我错了吗?

0 投票
1 回答
1959 浏览

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

有没有办法让 TypeScript 中的函数仅是函数(因此不接受非纯函数)?如果是,是哪个?

0 投票
1 回答
194 浏览

reactjs - 这会被认为是 redux 中的纯 reducer 函数吗?

我有这个 reducer 函数,我在里面将 voteScore 的值增加了 1。这是在不打破 reducer 函数应该是纯函数的约束的情况下正确的方法吗?

0 投票
9 回答
16435 浏览

javascript - 调用 Math.random() 的函数是纯函数吗?

以下是纯函数吗?

我的理解是纯函数遵循以下条件:

  1. 它返回从参数计算的值
  2. 除了计算返回值之外,它不做任何工作

如果这个定义是正确的,我的函数是纯函数吗?还是我对定义纯函数的理解不正确?

0 投票
3 回答
1099 浏览

haskell - Haskell 中的 print 是纯函数吗?

在 Haskell 中是print一个纯函数;为什么或者为什么不?我认为不是,因为它并不总是返回与纯函数应该返回的值相同的值。