equenceA 如何处理成对的列表?

2024-04-08

分拆出来this https://stackoverflow.com/a/64068980/5825294问题。直觉上我明白了什么sequenceA在该用例中确实如此,但不是how/why它是这样工作的。

所以这一切都归结为这个问题:如何sequenceA在以下情况下工作?

> sequenceA [("a",1),("b",2),("c",3)]
("abc",[1,2,3])

我看到

sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)

所以在上面的用例中Traversable is [],以及Applicative, since (,)是一个二进制类型的构造函数,是(,) a,这意味着该对被视为其上的应用函子snd场地。这将最终的列表放在一起snd结果。因此,我们从一个对列表转到第二个字段中有一个列表的对。

但是哪里有"abc"来自?我的意思是,我知道这是fst所有对中,但我不知道它是否是通过++ or via concat的列表中的fsts。里面好像什么都没有sequenceA的签名以强制执行fst这些对的 s 可以组合在一起。

但这个假设仍然必须在某个地方使用。确实,以下失败

sequenceA [('a',1),('b',2),('c',3)]

It uses mappend. The Applicative它使用的实例如下所示:

instance Monoid a => Applicative ((,) a) where
    pure x = (mempty, x)
    (af, f) <*> (ax, x) = (mappend af ax, f x)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

equenceA 如何处理成对的列表? 的相关文章

  • 这个对自身单位的列表理解是如何工作的?

    在 haskell IRC 频道中有人问 是否有一种简洁的方法来定义一个列表 其中第 n 个条目是之前所有条目的平方和 我认为这听起来像一个有趣的谜题 递归定义无限列表是我真正需要练习的事情之一 所以我启动了 GHCi 并开始尝试递归定义
  • 在 Haskell 中合并两个列表

    无法弄清楚如何合并两个列表通过以下方式在哈斯克尔 INPUT 1 2 3 4 5 11 12 13 14 OUTPUT 1 11 2 12 3 13 4 14 5 我想提出一个更懒的合并版本 merge ys ys merge x xs y
  • Haskell Data.Decimal 作为 Aeson 类型

    是否可以解析一个数据 十进制 https hackage haskell org package Decimal 0 4 2 docs Data Decimal html使用 Aeson 包从 JSON 获取 假设我有以下 JSON foo
  • 如何在Haskell中实现词法分析器和解析器

    我在这里得到了这段代码 它是用Haskell结构的命令式编程语言编写的程序 所以问题是 我如何为这种语言实现词法分析器和解析器 该程序被定义为一系列语句有 6 种类型 goto write stop if goto 和 int int n
  • C++ 概念与 Haskell 类型类有何不同?

    Concepts TS 中的 C 概念最近已合并到 GCC 主干中 概念允许人们通过要求类型满足概念的条件 例如 可比较 来约束通用代码 Haskell 有类型类 我对 Haskell 不太熟悉 概念和类型类如何相关 概念 由概念 TS 定
  • 约束包如何工作?

    背后的想法数据 约束 Forall http hackage haskell org packages archive constraints 0 3 2 doc html src Data Constraint Forall html据我
  • 使用带有两个列表而不是一个列表的地图。可以筑巢吗?

    我需要多次运行一个带有两个参数的函数 我有两个包含这些参数的列表 我希望能够使用map或类似的东西用相应的参数调用函数 我要调用的函数具有以下类型 runParseTest String gt String gt IO 列表的创建方式如下
  • Control.Parallel.Strategies 中 Eval 的绑定运算符如何严格评估其参数?

    Control Parallel Strategies 的源代码 http hackage haskell org packages archive parallel 3 1 0 1 doc html src Control Paralle
  • 树莓派 2 上的 GHCi?

    我正在开发一些在 raspberry pi 2 上运行的 haskell 项目 以及可以使用 raspbian 7 4 1 中的 apt get 安装的 ghc 版本 但它没有 GHCi 这会阻止一些重要的包 如 Vector 的编译 我看
  • 在 ghci 下执行 `(read "[Red]") :: [Color]` 时会发生什么?

    我正在阅读以下小节现实世界 Haskell 第 6 章 类型类 http book realworldhaskell org read using typeclasses html关于一个实例Read for Color 它实现了reads
  • Haskell 点运算符

    我尝试在 Haskell 中开发一个简单的平均函数 这似乎有效 lst 1 3 x fromIntegral sum lst y fromIntegral length lst z x y 但是为什么下面的版本不行呢 lst 1 3 x f
  • 如何让 do 块提前返回?

    我正在尝试使用 Haskell 抓取网页并将结果编译到一个对象中 如果出于某种原因 我无法从页面获取所有项目 我想停止尝试处理页面并提前返回 例如 scrapePage String gt IO scrapePage url do doc
  • Haskell Fibonacci 达到最大指定数?

    我有一个已启动并正在运行的 Haskell 函数 但它做错了事情 它应该输出最多指定最大数量的斐波那契数列 像这样 fibonacciSequence 86 1 1 2 3 5 8 13 21 33 54 我的代码当前输出斐波那契数列中的前
  • Haskell 中的所有内容都存储在 thunk 中吗,甚至是简单的值?

    以下值 表达式 函数的 thunk 在 Haskell 堆中是什么样子的 val 5 is val a pointer to a box containing 5 add x y x y result add 2 val main prin
  • Haskell 中多核编程的现状如何?

    Haskell 中多核编程的现状如何 现在有哪些项目 工具和库可用 有哪些经验报道 2009年至2012年期间 发生了以下事件 2012 从 2012 年开始 并行 Haskell 状态更新开始出现在并行 Haskell 摘要 http w
  • Python 比编译的 Haskell 更快?

    我有一个用 Python 和 Haskell 编写的简单脚本 它读取包含 1 000 000 个换行符分隔的整数的文件 将该文件解析为整数列表 对其进行快速排序 然后将其写入已排序的不同文件中 该文件与未排序的文件具有相同的格式 简单的 这
  • 使用 Parsec 解析正则表达式

    我正在尝试通过实现一个小型正则表达式解析器来学习秒差距 在 BNF 中 我的语法类似于 EXP EXP LIT EXP LIT 我尝试在 Haskell 中实现这一点 expr try star lt gt try litE lt gt l
  • 并行 Haskell - GHC GC 火花

    我有一个正在尝试并行化的程序 带有可运行代码的完整粘贴here http lpaste net 101528 我进行了分析 发现大部分时间都花在findNearest这本质上是一个简单的foldr超过一个大Data Map findNear
  • 与 Functor 不同,Monad 可以改变形状?

    我一直很喜欢以下关于单子相对于函子的力量的直观解释 单子可以改变形状 函子不能 例如 length fmap f 1 2 3 总是等于3 然而 对于单子来说 length 1 2 3 gt gt g往往不等于3 例如 如果g定义为 g Nu
  • Haskell 中的内部爆炸模式是否总是强制使用外部构造函数?

    在 Haskell 中 是否存在对于数据类型 LANGUAGE BangPatterns import Control DeepSeq data D D Int 实例 instance NFData D where rnf D 与具有另一个

随机推荐

  • 如何在 Spring Data REST 项目中使用 DTO?

    Spring Data REST 自动仅公开域对象 但大多数情况下我们必须处理数据传输对象 那么如何以SDR方式做到这一点呢 一种如何合作的方法DTO https en wikipedia org wiki Data transfer ob
  • 如何在 Visual Studio Code 中获取 Unity 函数名称的智能感知?

    我正在关注有关 Unity 的教程 我发现讲师在编写方法名称时具有智能感知功能 然而 我只有类和变量的智能感知 我的意思是像 Rigidbody 这样的 Unity 类和我自己的变量 我还读过 自动补全在 Visual Studio 中不起
  • Android apk 构建的条件资源包含/排除

    我不断回到这个问题 因为似乎没有一个干净的解决方案 有没有人有一个好的策略来从 Android 子项目中排除资源 我有两种情况 1 基础库项目具有 en es 等本地化文件 子项目1使用所有本地化 一切都很好 子项目 2 仅本地化为英语 但
  • Bookdown:如何更改章节标题的大小?

    我正在使用 bookdown 为研讨会生成幻灯片 我使用菜单中的 大 字母选项来显示幻灯片 但是章节标题字体太大 我在哪里 如何修改那个 Thanks Paul 你可以用 css 来控制它yihui https stackoverflow
  • Keycloak Java 管理客户端在触发验证电子邮件时返回 400 错误

    我在 Spring Boot 2 2 上使用 keycloak 服务器版本 8 0 1 和 keycloak java admin 客户端版本 8 0 1 使用 webflux 和 netty 而不是 tomcat 如果此类信息有帮助的话
  • Python - “ascii”编解码器无法解码字节

    我正在使用 Python 2 6 和 Jinja2 创建 HTML 报告 我为模板提供了许多结果 模板循环遍历它们并创建 HTML 表 当调用 template render 时 我突然开始收到此错误 td result result st
  • sorl-缩略图不起作用

    我已经尝试了几个小时来让 sorl thumbnail 工作 但它就是行不通 困难的部分是它没有显示错误 所以我不知道出了什么问题 我按照说明安装了它 我的完整代码可以在这里找到 https github com samos123 Samo
  • 在同一个表上触发 INSERT 和 UPDATE

    众所周知 实体框架无法保存地理数据 所以我的想法是 在我的模型中将经度和纬度指定为十进制 执行用于创建表的 SQL 脚本后 我将启动另一个脚本来添加地理列 然后我想通过触发器在每次插入或更新 经度和纬度 时更新此列 下面的触发器是好的还是坏
  • 在新机器上部署.net应用程序并得到“系统无法执行指定的程序”

    我有一个启动 Excel 的 net 控制台应用程序 我让它在我的开发环境中运行 但我无法让它在我的生产环境中运行 当我尝试运行它时 收到以下错误 系统无法执行指定的程序 我已经在我的生产服务器上安装了 net 2 0 sp2 有任何想法吗
  • PyQT 列表视图不响应数据更改信号

    我一直在关注一些教程并尝试设置列表模型 我的主窗口有两个访问同一模型的列表视图 当我更新一个列表中的一项时 另一个列表不会自行更新 直到它获得焦点 我单击它 所以看起来 dataChanged 信号没有被发出 但我无法弄清楚我的代码与我所基
  • 旋转时使用拖动手柄调整 div 大小

    我可以找到类似的问题 涉及 jQuery UI lib 或者只有 css 没有可拖动的句柄 但没有任何纯数学问题 我尝试执行的是拥有一个可调整大小和可旋转的 div 到目前为止很容易 我可以做到 但旋转时会变得更加复杂 调整大小以相反的方式
  • JavaScript 函数是否可以将其自己的函数调用作为字符串返回?

    在 JavaScript 中 函数是否可以将其自己的函数调用作为字符串返回 function getOwnFunctionCall return the function call as a string based on the para
  • 胡萝卜2 - 我可以从文件夹中聚集文档吗?

    我正在尝试对我在研究项目中收集的文档进行聚类 我正在尝试使用 Carrot2 工作台 但无法找到如何将胡萝卜指向包含文档的文件夹 请问我该怎么做 我有少量文档 txt 需要比较 它们位于独立的研究机器上 因此我无法连接到网络并在那里处理它们
  • Symfony 存储 foreach 循环的结果

    我想知道是否可以存储 foreach 循环的结果 我不知道如何更详细地解释我的问题 所以可以说以下让我得到 3 个不同的数组 events this gt getDoctrine gt getRepository TestBundle Ev
  • IS 回收时正在运行的任务会发生什么情况

    为了帮助提高客户端的性能 我将请求的处理转移到任务上 这样做是因为处理通常需要一些时间 而且我不希望客户端等待一段时间才得到 200 响应 将工作转移到任务上的 Web 服务始终在处理帖子 public void ProcessReques
  • 即使在使用显式版本的 Pipfile 和 Pipfile.lock 后,用户之间也存在差异

    抱歉 篇幅较长 这是一个非常复杂的 Pipenv 情况 在我的公司 我们正在使用 pipelinev 同时使用Pipfile and Pipfile lock 来控制不同工程师笔记本电脑上使用的包 这对我们来说比大多数团队更重要 因为我们还
  • Django 错误:vertualenv 环境错误:找不到 mysql_config [重复]

    这个问题在这里已经有答案了 当我尝试在运行 10 8 的 MAC 上的 virtualenv 中安装 MySQL python 时 出现以下错误 vertualenv EnvironmentError mysql config not fo
  • 如何在 Go 中实现不同类型的容器? [复制]

    这个问题在这里已经有答案了 下面的代码在Go中实现了一个int列表 package main import fmt type List struct Head int Tail List func tail list List List r
  • 增加或减少添加神经元或权重的学习率?

    我有一个卷积神经网络 我修改了它的架构 我没有时间重新训练和执行交叉验证 对最佳参数进行网格搜索 我想要直观地调整学习率 我是不是该increase or decrease我的 RMS 基于 SGD 优化器的学习率 如果 I add mor
  • equenceA 如何处理成对的列表?

    分拆出来this https stackoverflow com a 64068980 5825294问题 直觉上我明白了什么sequenceA在该用例中确实如此 但不是how why它是这样工作的 所以这一切都归结为这个问题 如何sequ