当前位置: 首页 > 知识库问答 >
问题:

由应用文体组成的应用函子真的是独立的吗?

汪弘毅
2023-03-14

我对函子、应用函子和单子的理解如下:

    null
(,) <$> parseName <*> parseEmail

两个解析器parsenameparseemail的效果并不独立,因为它们都使用来自相同输入流的令牌,例如。

Jubobs jubobs@jubobs.io

parseemail只能使用parsename尚未使用的内容。那么,怎么能说这两种计算是独立的呢?

共有1个答案

景永望
2023-03-14

这里的独立性并不是说一个计算不能检测到其他计算已经运行--也就是说,不应该是parseName对parseemail没有影响的情况。相反,您不能使用应用程序值(由parseName解析的名称)来选择下一步要运行的应用程序计算:您只能解析一个通用电子邮件,而不能在检查电子邮件地址不包含解析的名称的同时解析它。

另一种说法是,如果您只使用应用函数,计算的整体“形状”是预先确定的:您总是解析一个名称,然后是一个电子邮件地址。如果您使用的是单子函数,那么您可以根据前一次解析的结果来决定下一步要解析什么,这样您就可以在计算运行时更改计算的形状。

 类似资料:
  • 问题内容: 我正在考虑开发由两部分组成的桌面应用程序: 用户界面(例如Java应用) 后端Node.js服务器 2个部分通过插座连接。不要问为什么我知道这很奇怪。 我将希望能够为客户提供带有安装程序的应用程序。我不希望用户必须自己安装Node.js。 有没有一种方法可以独立安装Node.js服务器,即无需在系统上全局安装Node.js。 对于任何(Windows,Linux,Mac OS X …)

  • 现在假设我们想要使用 Spark API 写一个独立的应用程序。我们将通过使用 Scala(用 SBT),Java(用 Maven) 和 Python 写一个简单的应用程序来学习。 我们用 Scala 创建一个非常简单的 Spark 应用程序。如此简单,事实上它的名字叫 SimpleApp.scala: /* SimpleApp.scala */ import org.apache.spark.S

  • null 最好的选择是什么? (哦,我正在使用wicket作为框架,如果这与此有任何关系的话) 编辑: null 谢谢!

  • 问题内容: 如何使用Maven创建桌面(独立/ Swing)应用程序? 我正在使用Eclipse 3.6。 问题答案: 创建一个Maven项目,如下所示: 将以下条目添加到您的pom文件中: 将项目作为Maven项目导入到Eclipse,然后作为Java应用程序运行。

  • 在尝试url:http://localhost:8091/info时,它永远不会被解析。 是否不可能为独立应用配置执行器?

  • 对于函数单子,我发现和/有两种惊人相似的类型。特别是使相似性更加明显: 而且它们看起来是如此惊人的相似(或者对称,如果你想的话),以至于我不禁想起了标题中的问题。 关于单子比应用函子“更强大”的问题,在Lyah的《多几个单子》一章的硬拷贝中,有如下陈述: […]不能仅仅通过使用函数和应用程序提供的功能来实现。 我能用来表达吗?嗯,实际上我认为我可以:不是正确的吗?不是不使用/和的的实现吗? 但是,