问题标签 [traversable]

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 投票
4 回答
311 浏览

haskell - 一般而言,可折叠函子是否有等效于头/尾的方法?

我想表达以下 Haskell 代码,仅使用函子代数(即 -依赖于任何特定的容器类型,例如List):

在我看来,应该有办法做到这一点,只依靠Foldable(或者,也许,Traversable),但我看不到它。

我在想:

  1. 可折叠/可遍历函子是否有后退的一般概念?
  2. 是否有一种公认的惯用方式,仅使用函子代数来移动可折叠/可遍历函子的内容?(请注意,上面的计算可能用英语描述为“从右侧移入一个值,并将落在左侧的值加回新的第一个值。”)
0 投票
2 回答
221 浏览

haskell - Traversable 概念的术语

为什么我们将结构的翻转称为“序列”,为什么要谈论“遍历”和“遍历”?

我正在讨论这些概念的haskell中的实现......

0 投票
1 回答
232 浏览

haskell - Stream 成为可遍历的实例

vector-0.1包有一个非常有效的Stream实现(Data.Vector.Stream):

后来的版本vector将此扩展为单子版本Data.Vector.Fusion.Stream.Monadic,但为了简单起见,让我们使用旧的非单子版本。

Stream很自然地是Functorand的一个实例Foldable

作为一个流,它也应该是 的一个实例Traversable,不是吗?至少乍一看,它看起来很容易。我们需要一个

这将开始为

<*>fStream. 现在,step'应该

我们有一个

我只知道这f是一个Applicative(和Functor)。但是<*>“拉入” f<*> :: f(a->b)->(f a->f b)),而在这里我需要完全相反的,可以<*>这么说。

拥有一个Traversable实例对我的任何努力都不是至关重要的,从性能的角度来看,它甚至可能不是可取的。但让我感到困扰的是,我并没有真正理解为什么Stream不会TraversableStream制作a缺少什么结构元素Traversable

0 投票
1 回答
307 浏览

scala - 为什么 scala.collection.immutable.List[Object] 不是 GenTraversableOnce[?]

简单的问题,对不起,如果这是一个愚蠢的问题,因为我刚刚开始在 scala 中。我收到一个类型不匹配错误,上面写着:

但是根据这篇文章(我有一个 Scala 列表,我怎样才能得到一个 TraversableOnce?), ascala.collection.immutable.List是 anIterable因此也是 a GenTraversableOnce。然而,这个错误似乎表明并非如此。此外,当我实际查看该帖子的已接受答案中的链接时,我没有看到对“可遍历”一词的任何引用。

如果问题与我的内部类不正确有关,那么我不得不说这个错误非常无信息,因为要求内部类的类型为“?” 显然是一个空洞的陈述......理解这一点的任何帮助将不胜感激。

0 投票
2 回答
261 浏览

functional-programming - 列表:在 Erlang 中具有副作用的映射

我有一个 id 的批次(子列表)列表,我想遍历这个列表并为这批 id 中的每个 id 生成一个工作进程。这些工作人员中的每一个都将查询一些服务,获取结果并将其发送回调用者。简而言之,我想将 s 列表映射id到通过这些ids 获得的数据列表。我设法做到了这一点,但我相信这是一种单一的方式:

在这种情况下,如您所见,我滥用map功能,因为它被设计为无副作用。但我没有看到其他选择。有,foreach()但它仅用于运行副作用并仅返回ok,而在我的情况下,我也想保留列表的形状。在 Haskell 中有一个方便的类型类Traversable,其traverse功能正是这样做fmap的:运行并同时允许您对每个项目执行操作(效果)。Erlang中有类似的东西吗?(smap也许像?)。

0 投票
2 回答
225 浏览

haskell - Traversable 对 Applicative 上下文意味着什么?

我试图在https://namc.in/2018-02-05-foldables-traversals的帮助下理解 Traversable 。

作者在某处提到了以下句子:

Traversable 对于 Applicative 上下文就像 Foldable 对于 Monoid 值一样。

他试图澄清什么?

我不明白之间的联系Foldable to Monoid

请举个例子。

0 投票
1 回答
157 浏览

haskell - “空”可遍历-有意义吗,是否在任何库中提供?

我正在编写一段使用抽象的 Haskell 代码Traversable。在这个抽象背后,我希望能够隐藏所有常规的可遍历结构,如列表、树、地图等,特殊情况下是Data.Functor.Identity.Identity包含单个值的基本结构。我还想介绍一个“空”结构的情况。这种“空”的可遍历实例是否存在?也许它已经由任何图书馆提供?

我第一次(也许是天真的)尝试定义这样的实例如下。是否有意义?

0 投票
0 回答
137 浏览

relationship - 如何在与中间表的多对多关系中访问数组类型的属性

这是 symfony4 返回的错误:无法确定“App\Entity\Event”类中属性“artist”的访问类型:“App\Entity\Event”类中的属性“artist”可以使用“addArtist”方法定义()”、“removeArtist()”,但新值必须是数组或 \Traversable 的实例,给出“App\Entity\Artist”。`

// class Artist

//EventType

// Event Conrtroller

`

0 投票
1 回答
123 浏览

php - 如何返回 Traversable 的实例以满足以下断言代码?

在这里,我有一个具有挑战性的 php 函数,它应该返回一个 instanceof Traversable(迭代器),并且还需要满足测试该函数的其他断言。

函数没有错误,它计算斐波那契数。功能是可以修改的,就是专门这样构造来挑战别人的。但是有一个限制,只标记为 !!! (三个感叹号)可以更改。

这是一个测试getFibonacci函数的phpunit代码

所以希望添加一些代码而不是!!! (三个感叹号)这样断言就会通过。

0 投票
2 回答
91 浏览

list - 如何将返回 [] 的函数转换为 Traversable?

我有以下实现目录遍历的模块:

它目前返回一个列表,但我希望它返回一个Traversable

如果我更改签名,我会收到以下错误:

我认为它在:? 我不能确定。我该如何解决?