单子是一个概念,来源于数学的一个部分,叫做范畴论,而不是一个阶级或者特质。在软件世界中,它可以在任何支持泛型的静态类型语言中实现为一个类或特征。此外,我们可以将它视为一个包装器,它将我们的值放在某个上下文中,并允许我们对该值执行操作。
单子是一个概念,来源于数学的一个部分,叫做范畴论,而不是一个阶级或者特质。在软件世界中,它可以在任何支持泛型的静态类型语言中实现为一个类或特征。此外,我们可以将它视为一个包装器,它将我们的值放在某个上下文中,并允许我们对该值执行操作,特别是返回包装在相同上下文中的值的操作。此外,我们可以以这样一种方式链接操作,即任何一步操作的输出都是下一步操作的输入。
说到单子,最后需要提到的是它们的法则。如果我们想把我们的实现看作一个真正的单子,我们必须服从它们。有三条定律:左侧标识, 正确的身份,和结合性。在我看来,理解它们的真正含义有点困难。
单子是一个非常有用和强大的概念,可能我们很多人在日常工作中都会用到它。我试图对其理论基础及其背后的逻辑提供清晰的描述性解释。我实现了一个定制的monad来表明它不是一个复杂的结构。在上面的例子中,我展示了monad的用法,这种方法的潜在优点,以及它与普通方法调用的不同之处。
延伸阅读:
什么是java?
Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。
Java 是一个通用术语,用于表示 Java 软件及其组件,包括“Java 运行时环境 (JRE)”、“Java 虚拟机 (JVM)”以及“插件”。 Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。
文章标题:什么是单子,发布者:Flawy,转载请注明出处:https://worktile.com/kb/p/52975