问题标签 [fold]

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

scala - 斯卡拉 - 减少/折叠左

我有一个嵌套地图m,就像:

m = Map("email" -> "a@b.com", "background" -> Map("language" -> "english"))

我有一个数组arr = Array("background","language")

如何折叠/减少数组并从地图中找到字符串“english”。我试过这个:

arr.foldLeft(m) { (acc,x) => acc.get(x) }

但我得到这个错误:

0 投票
8 回答
73093 浏览

scala - Scala中foldLeft和reduceLeft之间的区别

foldLeft我已经了解和之间的基本区别reduceLeft

左折叠:

  • 必须传递初始值

减少左:

  • 将集合的第一个元素作为初始值
  • 如果集合为空,则抛出异常

还有其他区别吗?

有两种具有相似功能的方法的具体原因吗?

0 投票
1 回答
3463 浏览

scala - foldRight 在无限惰性结构上

根据http://en.wikipedia.org/wiki/Fold_(higher-order_function ),如果不需要评估完整列表,则右折叠可以对无限列表进行操作。这可以在 haskell 中看到:

这在流的 scala 中似乎效果不佳:

或在迭代器上:

有没有一种实用的解决方案可以在 Scala 中实现惰性折叠?

0 投票
9 回答
9857 浏览

scala - 检查集合是否有序的惯用构造

出于学习的目的并进一步解决这个问题,我一直对用于检查列表(或集合)是否有序的算法的显式递归的惯用替代方案感到好奇。(我在这里通过使用运算符进行比较和 Int 作为类型来保持简单;我想在深入研究它的泛型之前先看一下算法)

基本的递归版本将是(@Luigi Plinge):

一个表现不佳的惯用方式是:

另一种使用折叠的算法:

它的缺点是它会比较列表的所有 n 个元素,即使它可以在找到第一个乱序元素后更早停止。有没有办法“停止”折叠并因此使其成为更好的解决方案?

还有其他(优雅的)替代品吗?

0 投票
2 回答
47586 浏览

filter - DrRacket/Scheme 中的地图、过滤器、文件夹

编程语言:Scheme/DrRacket

我们目前正在复习map、、filterfoldr在我的计算机科学课上。我知道这三个都可以用来创建抽象函数,但老实说,我对这三个之间的区别以及何时使用它们感到有些困惑。

有谁愿意解释每个的用途以及它们有何不同?不幸的是,我的书不是很清楚。

0 投票
2 回答
437 浏览

html - 当文章的内容超过折叠时,容器上的左填充

我有一个容器,里面有我的标题、导航、侧边栏和文章。当文章的内容超过折叠时,容器左侧会添加填充或边距。当您在内容通过折叠的页面和不通过折叠的页面之间切换时,很明显,因为容器向右摇晃。

HTML

CSS

页眉,页脚,导航,文章,旁边{显示:块;}

#container{ 边界半径:20px; 背景颜色:#97C02F; 填充:10 像素 50 像素 30 像素 50 像素;边距:0px 自动;宽度:880px;溢出:自动;}

一边{浮动:左;宽度:150px;填充右:15px;红色; 边距顶部:15px;}

文章{浮动:左;宽度:660px;左边距:20px;}

section{ font-family: 'Droid Sans', sans-serif; 颜色:#FFFFFF;字体大小:15px;字体粗细:正常;}

我还没有插入我所有的代码,但我想我已经把必要的部分放进去了。

0 投票
2 回答
2063 浏览

php - Aptana 中的折叠/折叠方法?

我不确定我是否错过了一些东西,因为我是 Aptana 的新手,但是。我无法折叠我的类方法。我喜欢折叠除了我目前在课堂上工作的功能之外的所有东西,但每次折叠然后去编辑,一切都会再次展开。

因此,我猜想在编辑类中的任何方法时扩展类中的所有内容是某种功能。有没有办法解决这个问题。到目前为止,我很喜欢 Aptana,但这非常烦人。

0 投票
1 回答
3556 浏览

list - 如何使用 Scheme 的 Map 函数将两个列表传递给单个函数?

我有一个关于 Scheme 的问题。我对这门语言相当陌生,我的问题相当笼统:

是否可以在不定义递归函数的情况下使用 Map(或类似的东西)将两个参数列表提供给一个函数,从输出中生成一个新列表?

例如,假设我有:

然后我想以某种方式映射 + 函数,将每个列表作为参数提供,这样输出将是一个新列表 lst3:

更简洁地说明这个问题:当两个参数都是列表时,如何最有效地映射二元函数?

感谢您的任何帮助!

0 投票
1 回答
96 浏览

list - 列表中此递归函数的其他代码

我编写了一个函数来查找 asciibox 下一列的位置
,例如:

框 b 应从列“伪代码” {长度(框 a)} 开始,框 c 应从伪代码 {长度框 a + 长度框 b} 开始

所以我写了这个函数

这给了我我想要的

我想知道其他算法是否可行。是否有“折叠”或“展开”或“迭代”的解决方案

谢谢

0 投票
1 回答
995 浏览

scheme - DrRacket - 使用 Lambda 的中级学生 - 列表排序

我有一个作业问题,要求我使用 lambda 编写一个函数,该函数使用一个数字列表并删除除每个数字第一次出现之外的所有数字。我的功能是我认为很好,除了它产生错误的结果!它生成一个列表,其中包含每个数字的最后一次出现。它生成一个与正确列表具有相同值的列表,只是顺序不同。这是我的代码:

我尝试过使用foldl而不是,foldr但毫不奇怪,它会产生正确的列表,但相反。有没有一种方法可以生成正确的列表,而无需foldl使用另一个 lambda 表达式来反转由创建的列表?

请记住,这是作业,所以请不要明确回答。

感谢大家!