问题标签 [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 回答
140 浏览

haskell - 带有 lambda 表达式的 Foldl

嗨,我正在尝试使用 foldl 函数将元组列表加到一个元组中,我尝试使用 lambda 表达式作为参数,但它在代码中给出了错误的值:

它应该出来sumPoint [Point 2 4, Point 1 2, Point (-1) (-2)] = (2.0,4.0) 但我得到了(0.0,0.0) 这有什么意义?

0 投票
2 回答
192 浏览

scala - Scala 中的 Kadane 算法解释

我有兴趣学习如何使用 foldLeft 函数在 scala 中实现 Kadane(最大子数组和)算法。我在堆栈溢出时运行了这个示例,但是我不确定我是否理解该算法的确切作用。这是算法的样子:

lambda 函数中包含的内容是否{}需要应用于每个元素?还有这条线到底是做什么的maxEndingHere -> (maxEndingHere max maxSoFar)?为什么括号中的括号用空格分隔?我很感激任何帮助,如果我的问题太无知,我很抱歉,但我是 Scala 新手

0 投票
3 回答
92 浏览

scala - 如何在Scala中使用foldLeft返回列表中的第n个偶数?

对于一个大学项目,我必须实现一个名为takeNthEven的函数,它在foldLeft的帮助下找到列表中的第 n 个偶数。例如:

takeNthEven(SinglyLinkedIntList(0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15,18,5,3), 3)

应该返回:SinglyLinkedIntList(4, 10,18)

到目前为止我的尝试:

但不幸的是,这甚至没有编译。我不确定如何继续使用此算法,有人可以帮我解决这个问题吗?我是函数式编程的新手,不知道该怎么做

0 投票
1 回答
229 浏览

haskell - Lambda 函数在 Haskell 中的工作原理

我是 Haskell 的新手,在处理小程序时,我发现关于 lambda 函数的功能几乎没有混淆。

执行lastThat (>0) 100 [-1,-4,5,7,9,-10]我得到 100 。在使用以下定义时

& 然后执行lastThat (>0) 100 [-1,-4,5,7,9,-10]我得到了 9 的预期。

为什么它不适用于第一个定义?

0 投票
1 回答
148 浏览

haskell - Haskell折叠剩余无限列表不应用惰性评估

据我了解,由于 Haskell 使用惰性求值,它允许在有限的时间内对无限列表等操作进行求值。

作为测试,我定义了以下函数

因此,左折叠应用于[1..]具有False初始值的无限整数列表和上面定义的函数,应该返回True,因为当它到达n=3评估f(n==3,False)时将返回True,因此这True将通过函数传播。

我在 Haskell 代码中实现了这个功能

并在 cli 中试用

该命令变得无响应,表明它正在执行无限计算。为什么 Haskell 没有从这里的惰性评估中受益?

0 投票
1 回答
57 浏览

scala - 如何获取树状自定义对象的大小

我试图弄清楚如何获得以这种方式定义的自定义树状数据结构的大小(“级别”数):

如您所见,它实现了PrefixTree接口(实际上是特征),其中包含一个size()方法:

我正在尝试使用 foldLeft() Scala 方法来实现它,但我真的不明白它如何与这种复杂的数据结构一起工作到目前为止,我想出了这个并卡住了:

显然它没有编译,但我还想不出别的东西。

DS 的工作方式是:

在:scala>val tree2 = tree1.put(List("one", "two"), 12)

出去:PrefixTreeImpl(None,Map(one -> PrefixTreeImpl(None,Map(two -> PrefixTreeImpl(Some(12),Map(tree -> PrefixTreeImpl(Some(123),Map())))))))

0 投票
1 回答
220 浏览

scala - 如何对列表中的整数数量和浮点数求和 - Scala

我需要计算我在 Map 中的整数和浮点数,就像Map[String, List[(Int, String, Float)]]

数据来自读取文件 - 例如里面的数据看起来有点像(但是还有更多的路线):

地图被拆分,因此 String 是路线的名称,而 List 是其余数据。

我希望它计算每条路线的“检查点”数量和每条路线的总距离(即浮动),然后打印出例如 Oor Wullie Route 有 6 个检查点,总距离为 18.45 公里

我猜我需要使用 afoldLeft但是我不确定该怎么做?

我以前做过的一个简单折叠的例子,但不确定如何将一个应用于上述场景?

0 投票
2 回答
173 浏览

scala - SCALA:带条件的折叠方法

我仍在学习 Scala 的基础知识,因此我请求您的理解。是否有任何可能的方法使用折叠方法仅打印以“A”开头的名称

0 投票
1 回答
302 浏览

scala - 如何在Scala foldLeft中使累加器成为空的Int集?

我目前在 Scala 中有一个大于 1 的 Set :

val x = BitSet(19, 49)
val z = HashMap(49 -> HashSet(5, 6, 9, 13, 3, 8, 4), 19 -> Set(5, 9, 14))类型Map[Int,Set[Int]]

我正在尝试使用 foldLeft 构造一个Set[Int]与元素关联的所有值Set x,最终结果将是:HashSet(5, 6, 9, 13, 3, 8, 4, 14),但我无法将累加器正确设置为Set[Int].

我没有使用x.foldLeft(Set(0))((acc, elem) => acc.union(z(elem)))然后0从最终集合中删除该元素。

我试过了x.foldLeft(Set.empty)((acc, elem) => acc.union(z(elem)))

我什至尝试创建一个空Set[Int]变量作为变量并在折叠表达式中使用它,但它也没有用。我不能保留Set(0)累加器的初始值,因为它可能会作为实际值出现。

0 投票
1 回答
159 浏览

scala - 在scala中加入多个数据框

我有两个变量。一个是 Dataframe,另一个是 List[Dataframe]。我希望对这些进行连接。目前我正在使用以下方法:

有没有一种方法可以让我们跳过使用“var”而不是“foreach”使用“foldleft”?