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

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

汪弘毅
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时,它永远不会被解析。 是否不可能为独立应用配置执行器?

  • 在Expo的支持下,我们正在React Native中构建一个移动应用程序。过了一段时间,我们决定把世博会分离出来,利用世博会带来的其他本土利益。它同时支持和两种平台 我能够成功地将我们的应用程序与expo分离,使用这里提到的说明。我们有和文件夹,一切都很好。 现在,我们要从应用程序生成一个独立的签名APK。我指的是这些步骤。它确实产生了APK,但不知何故,它不工作后,安装在设备上。安装后,如果我