28得票1回答
Kotlin中尾随lambda语法的目的是什么?

在 Kotlin 中,有一个惯例:如果一个函数的最后一个参数接受一个函数,那么作为对应参数传递的 lambda 表达式可以放在括号外面: Passing a lambda to the last parameter。val product = items.fold(1) { acc, e -&...

27得票5回答
如何折叠STL容器?

我需要一个类似于Haskell的foldl函数的模拟函数,可以对任何STL容器进行折叠操作。预期的函数签名如下:template Iterator, FoldingFunction, Result Result foldl( Iterator begin, Iterator end,...

27得票5回答
将逻辑与运算应用于布尔值列表

在Scala中考虑以下布尔值列表。List(true, false, false, true) 你如何使用foldRight或foldLeft来模拟对列表中所有值执行逻辑AND函数的功能?

26得票7回答
C++17 可变参数模板折叠

我不明白为什么这个代码不起作用。能否有了解模板和可变参数表达式折叠的人解释一下发生了什么,并给出一个有效的解决方法?#include <iostream> #include <string> template <typename... Args> void...

23得票2回答
foldl是否比它的严格版本foldl'更可取?

Haskell有两个用于列表的左折叠函数:foldl和一个“严格”版本foldl'。非严格的foldl的问题在于它会构建一个thunk的堆栈: foldl (+) 0 [1..5] --> ((((0 + 1) + 2) + 3) + 4) + 5 --> 15 这种方式会浪...

23得票2回答
折叠,函数组合,单子和惰性编程?

我感到困惑。我可以写出以下代码:import Control.Monad main = print $ head $ (foldr (.) id [f, g]) [3] where f = (1:) g = undefined 输出结果是1。这是有道理的,因为它简化为:m...

23得票3回答
有没有看起来不像容器的非平凡可折叠或可遍历实例?

有很多像容器(列表、序列、映射等)的函数子,还有许多不是容器的(状态转换器、IO、解析器等)。我还没有看到过任何不像容器的非平凡的Foldable或Traversable实例(至少如果你眯一下眼睛的话)。是否存在任何不是容器的实例?如果没有,我想更好地理解它们不能存在的原因。

23得票3回答
实现单词函数是否可以在折叠后不需要后处理步骤?

Real World Haskell, chapter 4, page 98 of the printed version问能否使用折叠实现words函数,这也是我的问题: 是否可能?如果不能,为什么?如果可以,如何实现? 我想到了以下实现方法,其基本思路是将每个非空格字符前置到输出列表中...

22得票7回答
使用foldr实现zip

我目前正在阅读《Real World Haskell》第4章,并试图理解如何用foldr实现foldl。 (这是他们的代码:)myFoldl :: (a -> b -> a) -> a -> [b] -> a myFoldl f z xs = foldr st...

22得票2回答
Visual Code,折叠注释

Visual Studio Code 1.24.1 今天我在工作的时候,它提示我更新(更新到1.24.1)。我不确定我是否不小心按下了快捷键或者是因为这次更新导致的。 但是我似乎不能再使用注释作为折叠点。 然而,我不确定是否按下了某种快捷键,还是因为补丁引起的问题。 我的谷歌搜索没有帮...