underscore.js 中的 chain 函数是否创建了一个 monad?

2024-03-07

In the chain文档 http://underscorejs.org/#chaining你发现:

Calling chain在包装对象上将导致所有未来的方法调用 也返回包装的对象。当你完成后 计算、使用value检索最终值。

也是如此chain http://underscorejs.org/#chain函数创建一个 monad?


不,不是单子,而是共单子!它将一个接受包装对象并返回普通值的函数转换为一个既接受又返回包装对象的函数。作为 Haskell 类型签名,将是:

(Wrapped a -> b) -> (Wrapped a -> Wrapped b)

的类型签名value is:

Wrapped a -> a

这些正是 comonad 所需要的。第一个函数通常被称为extend和第二个extract.

您可以将 comonad 视为带有一些额外上下文的值。当然,这正是chain does.

See 这个 Stackoverflow 问题 https://stackoverflow.com/questions/8428554/what-is-the-comonad-typeclass-in-haskell有关 comonad 的更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

underscore.js 中的 chain 函数是否创建了一个 monad? 的相关文章

  • 为什么要使用 Python 进行函数式编程?

    在工作中 我们过去常常以非常标准的面向对象方式来编写 Python 程序 最近 有几个人加入了功能性潮流 他们的代码现在包含更多的 lambda map 和reduce 我知道函数式语言有利于并发性 但是函数式 Python 编程真的有助于
  • python函数返回函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Yesod 中使用 CSS 框架?

    我想将 Blueprint CSS 框架与 Yesod 一起使用 有没有最佳实践 因为 Yesod 使用 CSS 模板 所以在我看来我不能直接使用 css 文件 我必须将它们重命名为 lucius files 吗 如何将 CSS 添加到 d
  • Haskell 中的前提条件检查有哪些选项

    这是一个简单的问题 我认为答案很复杂 一个非常常见的编程问题是函数返回某些内容 或者前置条件检查失败 在Java中 我会使用一些抛出异常的断言函数IllegalArgumentException在方法的开头 如下所示 method body
  • F# 编码练习

    我一直在 Visual Studio 2010 中涉足 F 我是一名在 C 和 Java 等面向对象语言方面拥有更多代码 架构设计经验的开发人员 为了扩展我的技能并帮助做出更好的决策 我正在尝试使用不同的语言来做不同的事情 特别是掌握使用函
  • OCaml 作为 C 库,hello world 示例

    我希望通过 C 调用 OCaml 代码 方法是将 OCaml 编译为包含 C 接口的静态或共享库 这一页 https caml inria fr pub docs manual ocaml intfc html似乎解释了如何为 OCaml
  • 在 Haskell 中计算移动平均线

    我正在学习 Haskell 所以我尝试实现移动平均函数 这是我的代码 mAverage Int gt Int gt Float mAverage x a fromIntegral k fromIntegral x k lt rawAvera
  • 为什么 Haskell 的默认字符串实现是一个字符链接列表?

    Haskell 默认值的事实String众所周知 实现在速度和内存方面都效率不高 据我所知 lists一般来说 在 Haskell 中实现为单链表 并且适用于大多数小型 简单数据类型 例如Int 这似乎不是一个好主意 但是对于String这
  • Haskell 下划线与显式变量

    我已经学习 Haskell 几个星期了 我有一个关于下划线的使用的问题 作为函数参数 我认为用一个具体的例子来问我的问题会更好 假设我想定义一个函数 根据提供的索引提取列表的元素 是的 我意识到 已经是预先定义的 我可以定义该函数的两种方法
  • 什么是欣德利米尔纳?

    我遇到过这个词欣德利 米尔纳 我不确定是否理解它的意思 我已阅读以下帖子 史蒂夫 叶格 动态语言的反击 http steve yegge blogspot com 2008 05 dynamic languages strike back
  • 在 Haskell 中,为什么我必须在这段代码中使用美元符号?

    我仍在尝试破解这段代码 import Data Char groupsOf groupsOf n xs take n xs groupsOf n tail xs problem 8 x maximum map product groupsO
  • 持久 selectList 导致错误“无法将类型‘BaseBackend backend0’与‘SqlBackend’匹配”

    我遇到以下编译错误 Couldn t match type BaseBackend backend0 with SqlBackend arising from a use of runSqlite The type variable bac
  • 减少/折叠幺半群列表,但减少器返回任一

    我发现自己遇到过几次这样的情况 我有一个减速器 组合 fn 如下所示 def combiner a String b String Either String String a b asRight String 它是一个虚拟实现 但 fn
  • 将两个 Int 值相除以获得 Float 的正确方法是什么?

    我想分两份IntHaskell 中的值并获得结果Float 我尝试这样做 foo Int gt Int gt Float foo a b fromRational a b 但 GHC 版本 6 12 1 告诉我 无法将预期类型 Intege
  • Haskell,堆栈:找到可执行文件

    我正在寻找类似的东西 stack whereis hasktags where whereis行为或多或少类似于 UNIXwhereis命令 hasktags是这样运行的 stack exec hasktags stack exec whe
  • 规范化且不可变的数据模型

    Haskell如何解决 规范化不可变数据结构 问题 例如 让我们考虑一个表示前女友 男友的数据结构 data Man Man name String exes Woman data Woman Woman name String exes
  • 如何在 Haskell 中安装库?

    我尝试使用控制 Monad Extra andM https hackage haskell org package extra 1 7 10 docs Control Monad Extra html import Control Mon
  • Haskell 泛化问题(涉及列表理解)

    假设我想知道a上的所有要点 x y 矩形内的平面has 我可以使用列表推导式来计算 如下所示 let myFun2D x y x lt 0 2 y lt 0 2 现在 如果我想为一个人完成同样的事情 x y z 空间 我可以采取同样的方式并
  • Scala中有类似Java Stream的“peek”操作吗?

    在Java中你可以调用peek x gt println x 在 Stream 上 它将对每个元素执行操作并返回原始流 这与 foreach 不同 foreach 是 Unit Scala 中是否有类似的东西 最好是适用于所有 Monady
  • 创建 html 结构,每个 li 中仅允许 3 个 div 元素。在 React + underscore.js 中

    这是以下内容的位副本如何创建每个 li 中仅允许 3 个 div 元素的 html 结构 在 React underscore js 中 https stackoverflow com questions 38008023 how to c

随机推荐

  • FFmpeg:将文件夹中的所有音频(mp3)批量转换为带有专辑封面的视频(mp4)

    我希望将文件夹中的所有音频 mp3 批量转换为带有专辑插图的视频 mp4 这用于将音频上传到 youtube 我几乎有一个工作代码 但我想自动化整个事情 这是我正在使用的 bat 文件中的代码 source FFMpeg 批量图像 多个音频
  • TF 对象检测 Zoo 模型没有可训练变量?

    中的模型TF 异议检测动物园 https github com tensorflow models blob master research object detection g3doc detection model zoo md有met
  • 如何在 Jetpack Compose 中将视图的基线与另一个视图的顶部对齐?

    我有一个卡片视图 我想将另一个视图 图中的红色视图 的中心与卡片的顶部对齐 如图所示 我该怎么做 卡的代码是这样的 class MainActivity ComponentActivity override fun onCreate sav
  • maven - 在构建时弹出请求许可的窗口

    我刚刚安装了 Maven 在构建 hello world 时 maven 不断向我请求许可 并显示以下消息 小程序正在尝试访问文件的 存在 状态属性 看起来这不是一个很常见的问题 有什么办法可以给maven授予这些权限吗 INFO Scan
  • Solr 中的 docValues 是什么?我什么时候应该使用它们?

    因此 我阅读了多个来源 试图解释 Solr 中的 docValues 是什么 但我似乎不明白何时应该使用它们 尤其是与索引字段和存储字段相关的时候 谁能解释一下吗 Solr 中的 docValues 是什么 Doc Values 可以解释为
  • 标题将包含的 div 从顶部向下推?

    我对 stackoverflow 和 Web 开发都是新手 尝试在没有任何帮助的情况下学习 我正在尝试创建一份简历 作为磨练我的技能的一部分 事情是这样的 我的包含 div 下的第一个 div 是带有 id 的 divheader 我已将包
  • Rails 中数字的本地化

    对新帖子感到抱歉 但我的第一个帖子关注的是阿拉伯 波斯数字 但问题似乎更大 我想知道是否有人做了一个 gem 来处理 ruby rails 中数字的本地化 I18n 官方语言环境 https github com svenfuchs rai
  • Pester:无法访问父作用域变量

    我在 Pester 中有以下简单的测试 Name Tests ps1 name foo Describe Check name It should have the correct value name Should Be foo 因此 当
  • R:解压缩多个文件,每个文件都在新的子目录中或重命名

    我设法调整一些代码来解压缩许多文件 但是解压时会出现同名文件 被替换 在我的工作目录中 我有 zip 文件 我在该目录中创建了一个名为 unzip 的新文件夹 我在其中解压缩了文件 dir create paste0 path unzip
  • 将 IEEE 754 浮点转换为 MIL-STD-1750A 浮点

    我正在尝试将 IEEE 754 32 位单精度浮点值 标准 c 浮点变量 转换为无符号长变量 格式为MIL STD 1750A http www xgc com manuals mil std 1750a 1 7 pdf 我在帖子底部包含了
  • 在 Grails 中将自定义 id 生成定义为默认值的最佳方法是什么?

    我想切换我的域类以使用可变长度的 UUID 作为其 id 我不想简单地在 URL 上显示连续的 id 供人们尝试和搞乱 我编写了一个自定义版本的 Java UUID 方法来允许可变长度 这样我就可以为不会变大的模型使用更短的 id 我发现这
  • 两个数组相加/求和

    我遇到了一个纯粹假设的问题 如果我找到正确的 linq 方法 感觉它有一个简单的解决方案 我有两个整数数组 我知道它们的大小相同 我想创建相同大小的第三个数组 其中第三个数组中的元素是相应位置的前两个数组中的元素之和 下面是一个应该显示我想
  • NetSuite / Suitescript - 为什么此验证字段脚本会进入无限循环?

    我的脚本进入无限循环 我不知道为什么 我在验证字段上运行此命令 并且如果存在具有相同参考号的另一个供应商帐单 则会阻止对该字段进行更改 从而强制用户将 参考号 更改为唯一 这是我的代码 function validateField type
  • 如何查看 C# 数组在内存中的分布情况?

    我想看看 C 数组是如何存放在计算机内存中的 我想看到的主要是两列 第一列是地址 第二列是数组元素 是否可以 我想从一维数组开始 但然后我想观察多维数组是如何放置的 Question 我如何通过 Visual Studio 看到它 您可以使
  • 运行时错误:事件循环正在运行

    当我调用该函数时出现以下错误send message Exception in thread Thread 1 Traceback most recent call last File usr lib python3 4 threading
  • Camel SFTP - 无法将目录更改为“/”

    我需要通过 SFTP 连接到服务器 但收到此错误 INFO org apache camel component file remote SftpOperations connect Connected to sftp myserver c
  • 从 Powershell 中的对象数组中删除项目

    我有一个数组对象 a 它返回如下所示的输出 通过执行 a 0 Name 我可以访问每个 Name 条目 a 0 Available 我可以访问其相应的可用空间 我有另一个数组 b 包含一些名称 例如 b 返回两个名称 sandeep agg
  • 解释 - 不涉及反射

    我有一个非常简单的问题 这不仅适用于 Spray json 而且我读过 argonaut 和 circe 的类似声明 所以请赐教 在 Spray json 中 我遇到这样的声明 There is no reflection involved
  • 如何在没有 ID 的情况下在 Prisma 中更新插入新记录?

    我正在使用 Prisma https www prisma io https www prisma io 作为 ORM 我想在存储数据时检查重复项 如果不存在 则创建一条新记录 我想我可以使用 Prisma 提供的 upsert 方法来做到
  • underscore.js 中的 chain 函数是否创建了一个 monad?

    In the chain文档 http underscorejs org chaining你发现 Calling chain在包装对象上将导致所有未来的方法调用 也返回包装的对象 当你完成后 计算 使用value检索最终值 也是如此chai