问题标签 [zipwith]

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 回答
43 浏览

elasticsearch - 类似 zip 的桶聚合

TL; DR:我想在 elasticsearch 中使用桶做与 Haskell 的zipWith等效的操作。

我有一个带有时间和值“元组”的索引,每个条目还有一个head_id, 指向有关一系列此类元组的元信息。这是时间序列 ID。可视化它可能看起来像这样:

为了清楚起见,让我们将每个单独的时间序列表示为这样的列表:

我想要实现的是在弹性搜索聚合中将这些系列“压缩”在一起:假设我想要sum它们:

我目前需要获取所有数据并在应用程序代码中执行所需的操作。现在,为了节省内存和网络带宽,我想直接在elasticsearch中执行一些这样的操作。

在这种情况下,因为我想加起来的值共享相同的时间戳,所以我能够使用带有子聚合的terms存储桶聚合来实现这一点sum

返回(简化):

但是,在我的情况下,不能保证时间序列的时间戳会像这样对齐,这意味着我需要一种更通用的方法来聚合 2 个(或更通用的 N)时间序列,假设它们每个具有相同数量的值。

我想到的一个潜在解决方法是将每个时间序列的开头移到 0,然后使用上述技术。但是,我不知道我怎么能做到这一点。

我想到的另一个潜在解决方法是首先聚合head_id以获取每个时间序列的存储桶,然后使用类似串行差分聚合的lag=1东西。但是我不能使用该聚合,因为我想做除减法之外的其他操作,并且它需要通过histogram聚合生成存储桶,而我的情况并非如此。

0 投票
2 回答
167 浏览

haskell - 第二个参数如何变成函数列表?

我玩了一下zipWith,遇到以下情况:

为什么编译器期望下一个参数是函数列表?

我试图分析,但无法得出结论,为什么下一个参数必须是函数列表。

id当我传递给时,签名是如何应用的zipWith

0 投票
3 回答
632 浏览

haskell - 矩阵的递归总和列到单行(使用 zipWith (+))

正如标题所说,我希望它递归地添加 this: [[a,b,c],[d,e,f]]like this: [a+d,b+e,c+f],并且 this 带有任何有限长度的列表。但是我所有的实现返回都是[]. 为什么会这样,我该如何解决?

0 投票
3 回答
642 浏览

haskell - 为什么 zipWith.zipWith 有效?

我正在实现一个combine :: [[a]] -> [[b]] -> (a -> b -> c) -> [[c]]给定两个二维列表的函数,将给定的函数应用于f :: a -> b -> c二维列表的条目。换句话说:

现在我怀疑combine = zipWith . zipWith,因为我已经尝试过了,它给了我预期的结果,例如

给出了预期的结果[[8,10,12],[14,16,18]],但我不明白为什么会这样,因为我不明白zipWith . zipWith结果是怎样的(a -> b -> c) -> [[a]] -> [[b]] -> [[c]]

这里是否(.)还在进行通常的功能组合?如果是这样,你能解释一下这如何适用zipWith吗?

0 投票
4 回答
752 浏览

list - Haskell,用长度压缩列表的元素

下一行应该显示它必须如何工作..

[14,2,344,41,5,666][(14,2),(2,1),(344,3),(5,1),(666,3)]

["Zoo","School","Net"][("Zoo",3),("School",6),("Net",3)]

到目前为止,这就是我的代码

我想弄清楚第二行的问题是什么。

0 投票
3 回答
307 浏览

scala - zipWithIndex 和过滤器在输出中产生“Vector”字符串

我还在为这些 zipWithIndex 和 filter 函数苦苦挣扎。我有这个代码语句,并添加了一个测试字符串以与其余代码隔离。

我曾期望从原始字符串中每隔 5 个字符得到一个字符串,这确实发生了。相反,我得到的是:

由于某种原因,它似乎添加了空格,以及Vector字符串中的单词。那是从哪里来的?它在那里没有.toString()(那是为了稍后更改类型)。更重要的是,我该如何预防呢?

0 投票
1 回答
1096 浏览

android - 如何在 Kotlin 中将以下 Observable 合并为一个?

Observable在 Kotlin 中有这两个,其中只是充当计时器,另一个是 HTTP 网络调用响应Observer

我对这种方法不满意,任何人都可以指导我正确的方向来rx充分利用 's 的潜力。提前致谢。

编辑

0 投票
2 回答
524 浏览

haskell - foldr 和 zipWith (:) 如何一起工作?

我是 Haskell 的新手,我遇到了以下令我困惑的代码:

它产生以下结果,在玩弄它之后,我不完全确定为什么:

我的印象是(:)将项目添加到列表中,并且会(repeat [])产生无穷无尽的空列表[],并且foldr需要一个函数、一个项目和一个列表,并通过将函数连续应用于列表中的每个项目来压缩列表连同结果一起列出。

也就是说,我直观地理解了下面的代码是如何产生 10 的结果的:

但是,我完全不确定为什么要foldr (zipWith (:)) (repeat [])使用列表列表并生成另一个列表列表,其中包含按原始内部索引分组的项目。

任何解释都会很有启发性。

0 投票
1 回答
186 浏览

haskell - 如何使用 zipWith(+) 添加两个数据类型 [[double]] 列表?

我在 Haskell 中这样做。我正在尝试添加两个要收集的列表,并且我正在使用 zipWith 函数来执行此操作。但是数据类型与我的 add 函数不匹配。

这就是我尝试过的

我想添加两个这样的列表

0 投票
1 回答
88 浏览

haskell - 如何在 Haskell zipWith 中正确使用来创建 [ [ int int ] ] 列表?

现在我使用两个功能,但我想用一个来做。我以为我可以使用 zipWith,但我似乎无法弄清楚如何。

我猜我把外括号放错了,但我不知道它们应该放在哪里。

谁能告诉我这项工作是如何完成的?