问题标签 [foldleft]

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 投票
2 回答
1124 浏览

scala - 将类列表折叠成一个逗号分隔的字符串(在 Scala 中)

我需要获取案例类列表并将它们转换为单个逗号分隔的字符串(没有标题或尾部逗号)。

所以, toLine(State("one"), State("two"), State("three")) 应该返回一、二、三

这就是我的想法。有更好的方法吗?

有没有办法保证列表中至少有一个值?

0 投票
2 回答
777 浏览

scala - foldLeft 上的 scala 参数化类型

给定参数化方法的以下签名

在处理参数化类型的 foldLeft 之前,我试图获得以下内容

但是,这会导致以下错误:

如果我将 def 的签名更改为以下内容:

工作和输出:

如果我遗漏了一些非常明显的东西,我深表歉意。

0 投票
2 回答
576 浏览

haskell - 这个基于 foldl 的函数如何工作:“myreverse = foldl (flip (:)) []”?

我正在学习haskell,我尝试在不使用递归的情况下编写自己的反向函数。

解决方案是这个功能:

我试图了解在评估过程中会发生什么,比如:

我不明白翻转在这里做什么。有人可以通过一步一步的解释写下这里发生的事情吗?

0 投票
3 回答
2047 浏览

scala - Scala:值 :: 不是 Int 的成员

我有以下 Scala 代码示例,我想知道为什么我在 foldLeft 上出现错误,但在 foldRight 上却没有?

我是 Scala 的新手,所以请尽可能简单地回复。谢谢

0 投票
4 回答
1832 浏览

scala - 如何在 Scala 中编写高效的 groupBy-size 过滤器,可以近似

给定List[Int]Scala 中的 a ,我希望得到至少出现次数Set[Int]的所有s 。我可以使用or , then来做到这一点。例如:IntthreshgroupByfoldLeftfilter

会给Set(1,2)

现在假设List[Int]非常大。很难说有多大,但无论如何这似乎很浪费,因为我不关心每个Ints 频率,我只关心它们是否至少是thresh. 一旦它通过thresh了,就不需要再检查了,只需IntSet[Int].

问题是:对于一个非常大的,我可以更有效地做到这一点List[Int]

a) 如果我需要一个真实、准确的结果(没有出错的余地)

b) 如果结果可以是近似的,例如通过使用一些散列技巧或布隆过滤器,其中Set[Int]可能包含一些误报,或者 {the frequency of an Int> thresh} 是否真的不是 aBoolean而是 a Doublein [0-1]

0 投票
1 回答
400 浏览

scala - Scala折叠左找到倒数第二个元素

  1. 你能解释一下为什么第一个定义与下一个定义相比是错误的吗?

  2. 为什么写作((r._2,c))._1会给我带来倒数第二个元素?

  3. 请告诉我元素是如何插入的(r,c)或它们的意义。

这是代码:

0 投票
3 回答
440 浏览

arrays - Scala:如何将 foldLeft 与通用数组一起使用?

我有这个方法:

我想做的是使用foldLeft和应用二元运算符。但是,foldLeft需要一个初始值,而且我不知道在不知道A.

0 投票
1 回答
610 浏览

scala - 是否可以根据条件更新 foldLeft 函数中的变量?

我正在尝试编写 scala 代码,该代码从给定数组的连续子数组中给出最大总和。例如,val arr= Array(-2, -3, 4, -1, -2, 1, 5, -3)。在这个数组中,我需要获得最大的连续子数组和,即 4+(-1)+(-2)+(1)+5 = 7。我编写了以下代码来获得这个结果。

maximum_so_far但与实际结果有偏差,因为随着计数/求和的进行,我无法更新该值。由于我曾经做过这个功能,只有当连续子数组元素的总和大于之前的 max_sum 时foldLeft,是否有可能更新变量?maximum_so_far

参考链接,以更好地理解场景

0 投票
2 回答
3318 浏览

scala - 聚合案例类列表的更好方法

我有案例类列表。输出需要对案例类的不同参数进行聚合。寻找更优化的方法来做到这一点。

例子:

现在要从一个城市获取学生的详细信息,我需要首先按城市聚合,然后分解这些详细信息大学,然后分组。

输出是以下格式的案例类列表。

实现此目的的两种方法:

1)循环所有列表,为每个组合(以上案例3组合)创建一个映射,聚合数据并创建新的结果列表并将数据附加到它。

2) 使用 foldLeft 选项

在这两种情况下,循环列表不止一次。有什么方法可以通过单通道和优化方式来实现这一点。

0 投票
2 回答
7045 浏览

scala - 用 Map 而不是 List 理解 foldLeft

我很想了解foldLeft地图的工作原理。如果我有一个 List 并使用一个零元素和一个函数调用它 foldLeft,我确实理解它是如何工作的:

我在其中添加零元素0和第一个元素,list1然后添加第二个元素,list1依此类推。所以输出成为新的输入,第一个输入是零元素。

现在我得到了代码

  1. 所以我这里的第一个元素是 a Tuple2,但既然map2是 aMap而不是 a Tuple2,那么零元素是什么?
  2. 当我们有 aListlist1,我们总是“取下一个元素list1”。什么是“下一个元素” map1?是另一对map1吗?