问题标签 [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 投票
2 回答
4391 浏览

php - 如何在 PHP 中检测对象是否可遍历?

如何检测变量是循环Traversable中使用的对象?foreach

0 投票
2 回答
117 浏览

haskell - 提升函数`a→b→c`到`[a]→[b]→[[c]]`

我想要一个功能

它接受一个函数f :: a → b → c和两个列表xsys并返回一个网格(即列表列表),其中包含f应用于 和 的每个值组合的xsys

示例:foo [1..3] [4..6]应该返回

我目前的做法是

这可行,但我想知道是否有其他方法或预定义的组合器可以更好地完成(或者甚至可以组合,以便它可以轻松地扩展到三元或 n 元函数)

例如:如果我不想要结果网格而只想要结果列表,我可以编写f <$> xs <*> ys简洁的 ,使用预定义的组合子,并以明显的方式泛化到 n 元函数。是否有类似简洁的方式来编写我的组合器?

0 投票
1 回答
2145 浏览

haskell - Foldable vs Traversable

While studying Applicative deeper, I came to Traversable. Although I already knew Foldable from LYHGG, I haven't seen the former yet, so I started reading the Haskell wiki about Traversable.

While reading it, I understood why Foldable.fold is parallel to Traversable.sequenceA and Foldable.foldMap is parallel to Traversable.traverse.

I've seen also that every Traversable is also a Foldable and a Functor, and sequenceA and traversal have a default implementation in terms of each other:

So, as I have seen in LYHGG that foldMap is a minimal complete definition for Foldable, I thought that, it is parallel to traverse, so fold (which is parallel to sequenceA) would be a minimal complete definition too (which it isn't)... Foldable is not a Functor like Traversable is, so we cannot apply this:

Why isn't every Foldable a Functor, and what would be an instance of Foldable that actually isn't a Functor?

0 投票
1 回答
414 浏览

haskell - 为什么这个 Traversable for list 实例不正确?

以下代码未通过检查器测试以进行可遍历。我会很感激解释它为什么失败,而不仅仅是如何修复它。

在这里,您会看到它通过了fmap法律,但没有通过foldMap

0 投票
3 回答
2421 浏览

scala - 如何将 Option[Try[_]] 转换为 Try[Option[_]]?

我经常使用下面的函数来转换Option[Try[_]]Try[Option[_]]但感觉不对。可以用更惯用的方式表达这样的功能吗?

假设我有两个值:

我想对这些值进行操作op(可能会失败)并将其传递给f下面的函数。

我通常用于理解可读性:

PS。我想避免一些沉重的东西,比如scalaz。

0 投票
1 回答
148 浏览

haskell - 可遍历数据常量 ab = 常量 a 通过快速检查,但行为有趣

haskell 书要我实现可遍历的实例

包括所有必要的超类。下面的代码通过Quickcheck/Checkers了,但行为很有趣

当我尝试像这样使用可遍历实例时:

我没有得到Constant [5]我希望的结果,而是

这是什么意思?我做错了什么吗?

0 投票
4 回答
951 浏览

javascript - 如何检查对象或变量是否可以在 Javascript 中遍历?

如何检查对象或变量在 Javascript 或 jQuery 中是否可遍历?

可遍历的对象或变量必须适用于每个likeobject.forEach()$.each(object, callback)jQuery。

实际上我想验证它然后在每个循环中使用它。

更新:

我正在寻找的解决方案是这样的:

你可以给我一个is_traversable()函数的实现。

0 投票
1 回答
384 浏览

haskell - 序列A中的A代表什么?

sequenceATraversable 代表什么?为什么最后有大写A?我已经学习 Haskell 几个月了,这是困扰我一段时间的事情之一。

0 投票
1 回答
301 浏览

haskell - 我如何理解列表的 Traversable 实现

我无法理解NICTA 课程中的以下示例

在下文中,我将替换List[],因此我们有:

特别是,以下类型的推导有什么问题(<*>)

(所以...)

(所以...)

0 投票
3 回答
385 浏览

haskell - Haskell 的`mapM` 的执行顺序

考虑以下 Haskell 语句:

实际上,这会按顺序打印“1”、“2”和“3”。

问题:你怎么知道mapM打印“1”,然后打印“2”,最后打印“3”。有没有保证它会这样做?或者它是如何在 GHC 深处实施的巧合?